Merge ~athos-ribeiro/ubuntu/+source/telegraf:cve-2021-3121-focal into ~ubuntu-server/ubuntu/+source/telegraf:focal

Proposed by Athos Ribeiro
Status: Merged
Merged at revision: f0cc29b4ef90cc9b51ab5b608d86bfd79d09d64a
Proposed branch: ~athos-ribeiro/ubuntu/+source/telegraf:cve-2021-3121-focal
Merge into: ~ubuntu-server/ubuntu/+source/telegraf:focal
Diff against target: 138305 lines (+138284/-0)
3 files modified
debian/changelog (+7/-0)
debian/patches/CVE-2021-3121.patch (+138276/-0)
debian/patches/series (+1/-0)
Reviewer Review Type Date Requested Status
Sergio Durigan Junior Approve
Canonical Server Pending
Review via email: mp+401795@code.launchpad.net

Description of the change

This update provides a fix for CVE-2021-3121.

The patch was generated by updating the upstream go.mod file to substitute github.com/gogo/protobuf version for its unaffected v1.3.2 version. Then, a new go.sum file and vendor directory were generated with the `go mod tidy` and `go mod vendor` commands.

Moreover, the vendor directory was removed from the .gitignore file so changes will be properly tracked to the vendored dependencies. Finally, there were one inconsistent file that needed sync'ing with the upstream tarball in that vendored directory (see the relevant commit for further reference).

A PPA build is available at https://launchpad.net/~athos-ribeiro/+archive/ubuntu/telegraf-cve-2021-3121-focal/+packages

To post a comment you must log in.
Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Updated the MP to remove direct changes to the upstream sources.

New PPA build at https://launchpad.net/~athos-ribeiro/+archive/ubuntu/fix-telegraf-cve-2021-3121-focal/+packages

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

Thanks for following-up with the MP, Athos.

I've left a few inline comments that I'd like you to address, but otherwise the patch seems good and matches what we discussed. Let me know when you update the MP and I can take a second look at and merge it. Thanks!

review: Needs Fixing
Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Hi Sergio,

I addressed the comments.

Should the patch Subject field be named after the file name though?

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

Thanks! And yeah, it's a good idea to change the Subject field as well. BTW, while you're at it, please write a few lines describing what the patch does, otherwise we'll lose this information and it will be really hard to determine that in the future. Oh, and I'm leaving a small comment in the changelog, too. Thanks!

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

Thanks, this is great now!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index 93be464..14d686d 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,10 @@
6+telegraf (1.15.2+ds1-0ubuntu1~20.04.2) focal; urgency=medium
7+
8+ * d/p/CVE-2021-3121.patch: Fix CVE-2021-3121 by updating
9+ github.com/gogo/protobuf version.
10+
11+ -- Athos Ribeiro <athos.ribeiro@canonical.com> Mon, 26 Apr 2021 09:16:40 -0300
12+
13 telegraf (1.15.2+ds1-0ubuntu1~20.04.1) focal; urgency=medium
14
15 * Release to Focal (LP: #1897631).
16diff --git a/debian/patches/CVE-2021-3121.patch b/debian/patches/CVE-2021-3121.patch
17new file mode 100644
18index 0000000..92eeca9
19--- /dev/null
20+++ b/debian/patches/CVE-2021-3121.patch
21@@ -0,0 +1,138276 @@
22+From: Athos Ribeiro <athos.ribeiro@canonical.com>
23+Date: Mon, 26 Apr 2021 09:04:24 -0300
24+Subject: CVE-2021-3121
25+
26+Update github.com/gogo/protobuf version to v1.3.2, which fixes CVE-2021-3121.
27+
28+Bug: https://github.com/influxdata/telegraf/issues/9181
29+Last-Update: 2021-04-26
30+---
31+ go.mod | 10 +-
32+ go.sum | 33 +-
33+ vendor/github.com/gogo/protobuf/proto/encode.go | 2 +
34+ vendor/github.com/gogo/protobuf/proto/lib.go | 20 +-
35+ .../github.com/gogo/protobuf/proto/properties.go | 71 +-
36+ .../gogo/protobuf/proto/table_marshal.go | 17 +-
37+ .../github.com/gogo/protobuf/proto/table_merge.go | 19 +
38+ .../gogo/protobuf/proto/table_unmarshal.go | 22 +-
39+ vendor/github.com/gogo/protobuf/proto/text.go | 6 +-
40+ .../github.com/gogo/protobuf/proto/text_parser.go | 2 +-
41+ vendor/golang.org/x/net/html/const.go | 2 +-
42+ vendor/golang.org/x/net/html/foreign.go | 119 +-
43+ vendor/golang.org/x/net/html/render.go | 2 +-
44+ vendor/golang.org/x/net/http2/client_conn_pool.go | 8 +-
45+ vendor/golang.org/x/net/http2/flow.go | 2 +
46+ vendor/golang.org/x/net/http2/hpack/huffman.go | 7 +
47+ vendor/golang.org/x/net/http2/http2.go | 7 +
48+ vendor/golang.org/x/net/http2/server.go | 20 +-
49+ vendor/golang.org/x/net/http2/transport.go | 112 +-
50+ vendor/golang.org/x/net/icmp/endpoint.go | 2 +-
51+ vendor/golang.org/x/net/icmp/interface.go | 2 +-
52+ vendor/golang.org/x/net/icmp/ipv4.go | 2 +-
53+ vendor/golang.org/x/net/icmp/listen_posix.go | 2 +-
54+ .../x/net/internal/socket/cmsghdr_stub.go | 14 +-
55+ .../x/net/internal/socket/cmsghdr_unix.go | 21 +
56+ vendor/golang.org/x/net/internal/socket/socket.go | 10 +-
57+ vendor/golang.org/x/net/internal/socket/sys.go | 14 +-
58+ .../golang.org/x/net/internal/socket/sys_bsdvar.go | 23 -
59+ .../golang.org/x/net/internal/socket/sys_darwin.go | 7 -
60+ .../x/net/internal/socket/sys_dragonfly.go | 32 -
61+ .../x/net/internal/socket/sys_go1_11_darwin.go | 33 -
62+ .../golang.org/x/net/internal/socket/sys_linux.go | 5 -
63+ .../x/net/internal/socket/sys_linux_386.go | 2 -
64+ .../x/net/internal/socket/sys_linux_s390x.go | 2 -
65+ .../x/net/internal/socket/sys_solaris.go | 11 -
66+ .../golang.org/x/net/internal/socket/sys_stub.go | 16 +-
67+ .../x/net/internal/socket/zsys_aix_ppc64.go | 5 +-
68+ .../x/net/internal/socket/zsys_darwin_386.go | 5 +-
69+ .../x/net/internal/socket/zsys_darwin_amd64.go | 5 +-
70+ .../x/net/internal/socket/zsys_darwin_arm.go | 5 +-
71+ .../x/net/internal/socket/zsys_darwin_arm64.go | 5 +-
72+ .../x/net/internal/socket/zsys_dragonfly_amd64.go | 5 +-
73+ .../x/net/internal/socket/zsys_freebsd_386.go | 5 +-
74+ .../x/net/internal/socket/zsys_freebsd_amd64.go | 5 +-
75+ .../x/net/internal/socket/zsys_freebsd_arm.go | 5 +-
76+ .../x/net/internal/socket/zsys_freebsd_arm64.go | 5 +-
77+ .../x/net/internal/socket/zsys_linux_386.go | 5 +-
78+ .../x/net/internal/socket/zsys_linux_amd64.go | 5 +-
79+ .../x/net/internal/socket/zsys_linux_arm.go | 2 -
80+ .../x/net/internal/socket/zsys_linux_arm64.go | 2 -
81+ .../x/net/internal/socket/zsys_linux_mips.go | 2 -
82+ .../x/net/internal/socket/zsys_linux_mips64.go | 2 -
83+ .../x/net/internal/socket/zsys_linux_mips64le.go | 2 -
84+ .../x/net/internal/socket/zsys_linux_mipsle.go | 2 -
85+ .../x/net/internal/socket/zsys_linux_ppc64.go | 2 -
86+ .../x/net/internal/socket/zsys_linux_ppc64le.go | 2 -
87+ .../x/net/internal/socket/zsys_linux_riscv64.go | 2 -
88+ .../x/net/internal/socket/zsys_linux_s390x.go | 2 -
89+ .../x/net/internal/socket/zsys_netbsd_386.go | 2 -
90+ .../x/net/internal/socket/zsys_netbsd_amd64.go | 2 -
91+ .../x/net/internal/socket/zsys_netbsd_arm.go | 2 -
92+ .../x/net/internal/socket/zsys_netbsd_arm64.go | 5 +-
93+ .../x/net/internal/socket/zsys_openbsd_386.go | 5 +-
94+ .../x/net/internal/socket/zsys_openbsd_amd64.go | 5 +-
95+ .../x/net/internal/socket/zsys_openbsd_arm.go | 5 +-
96+ .../x/net/internal/socket/zsys_openbsd_arm64.go | 5 +-
97+ .../x/net/internal/socket/zsys_solaris_amd64.go | 5 +-
98+ vendor/golang.org/x/net/ipv4/header.go | 9 +-
99+ .../x/sys/internal/unsafeheader/unsafeheader.go | 30 +
100+ vendor/golang.org/x/sys/unix/README.md | 15 +-
101+ vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s | 29 +
102+ vendor/golang.org/x/sys/unix/errors_freebsd_386.go | 6 +
103+ .../golang.org/x/sys/unix/errors_freebsd_amd64.go | 6 +
104+ .../golang.org/x/sys/unix/errors_freebsd_arm64.go | 17 +
105+ vendor/golang.org/x/sys/unix/fcntl_darwin.go | 6 +
106+ vendor/golang.org/x/sys/unix/gccgo.go | 2 -
107+ vendor/golang.org/x/sys/unix/gccgo_c.c | 6 +
108+ vendor/golang.org/x/sys/unix/ioctl.go | 9 +
109+ vendor/golang.org/x/sys/unix/mkall.sh | 28 +-
110+ vendor/golang.org/x/sys/unix/mkerrors.sh | 28 +-
111+ .../golang.org/x/sys/unix/sockcmsg_unix_other.go | 6 +-
112+ vendor/golang.org/x/sys/unix/syscall_bsd.go | 34 +-
113+ .../golang.org/x/sys/unix/syscall_darwin.1_12.go | 4 +-
114+ .../golang.org/x/sys/unix/syscall_darwin.1_13.go | 21 +-
115+ vendor/golang.org/x/sys/unix/syscall_darwin.go | 82 +-
116+ .../x/sys/unix/syscall_darwin_386.1_11.go | 9 -
117+ vendor/golang.org/x/sys/unix/syscall_darwin_386.go | 15 -
118+ .../x/sys/unix/syscall_darwin_amd64.1_11.go | 9 -
119+ .../golang.org/x/sys/unix/syscall_darwin_amd64.go | 15 -
120+ .../x/sys/unix/syscall_darwin_arm.1_11.go | 11 -
121+ vendor/golang.org/x/sys/unix/syscall_darwin_arm.go | 15 -
122+ .../x/sys/unix/syscall_darwin_arm64.1_11.go | 11 -
123+ .../golang.org/x/sys/unix/syscall_darwin_arm64.go | 15 -
124+ vendor/golang.org/x/sys/unix/syscall_dragonfly.go | 15 -
125+ vendor/golang.org/x/sys/unix/syscall_freebsd.go | 19 -
126+ .../golang.org/x/sys/unix/syscall_freebsd_386.go | 4 +
127+ .../golang.org/x/sys/unix/syscall_freebsd_amd64.go | 4 +
128+ vendor/golang.org/x/sys/unix/syscall_illumos.go | 90 +
129+ vendor/golang.org/x/sys/unix/syscall_linux.go | 268 +-
130+ vendor/golang.org/x/sys/unix/syscall_linux_386.go | 2 +-
131+ .../golang.org/x/sys/unix/syscall_linux_amd64.go | 2 +-
132+ vendor/golang.org/x/sys/unix/syscall_linux_arm.go | 7 +-
133+ .../golang.org/x/sys/unix/syscall_linux_arm64.go | 28 +-
134+ .../golang.org/x/sys/unix/syscall_linux_gc_arm.go | 13 +
135+ .../golang.org/x/sys/unix/syscall_linux_mips64x.go | 11 +-
136+ .../golang.org/x/sys/unix/syscall_linux_mipsx.go | 2 +-
137+ .../golang.org/x/sys/unix/syscall_linux_ppc64x.go | 2 +-
138+ .../golang.org/x/sys/unix/syscall_linux_riscv64.go | 8 +-
139+ .../golang.org/x/sys/unix/syscall_linux_s390x.go | 2 +-
140+ .../golang.org/x/sys/unix/syscall_linux_sparc64.go | 2 +-
141+ vendor/golang.org/x/sys/unix/syscall_netbsd.go | 15 -
142+ vendor/golang.org/x/sys/unix/syscall_openbsd.go | 15 -
143+ .../x/sys/unix/syscall_openbsd_mips64.go | 35 +
144+ vendor/golang.org/x/sys/unix/syscall_unix.go | 19 +-
145+ vendor/golang.org/x/sys/unix/zerrors_darwin_386.go | 2 +
146+ .../golang.org/x/sys/unix/zerrors_darwin_amd64.go | 2 +
147+ vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go | 2 +
148+ .../golang.org/x/sys/unix/zerrors_darwin_arm64.go | 2 +
149+ .../golang.org/x/sys/unix/zerrors_freebsd_386.go | 166 +-
150+ .../golang.org/x/sys/unix/zerrors_freebsd_amd64.go | 164 +-
151+ .../golang.org/x/sys/unix/zerrors_freebsd_arm.go | 22 +
152+ .../golang.org/x/sys/unix/zerrors_freebsd_arm64.go | 165 +-
153+ vendor/golang.org/x/sys/unix/zerrors_linux.go | 2536 ++++++++++++++
154+ vendor/golang.org/x/sys/unix/zerrors_linux_386.go | 3352 +++----------------
155+ .../golang.org/x/sys/unix/zerrors_linux_amd64.go | 3352 +++----------------
156+ vendor/golang.org/x/sys/unix/zerrors_linux_arm.go | 3364 +++----------------
157+ .../golang.org/x/sys/unix/zerrors_linux_arm64.go | 3339 +++----------------
158+ vendor/golang.org/x/sys/unix/zerrors_linux_mips.go | 3356 +++----------------
159+ .../golang.org/x/sys/unix/zerrors_linux_mips64.go | 3356 +++----------------
160+ .../x/sys/unix/zerrors_linux_mips64le.go | 3356 +++----------------
161+ .../golang.org/x/sys/unix/zerrors_linux_mipsle.go | 3356 +++----------------
162+ .../golang.org/x/sys/unix/zerrors_linux_ppc64.go | 3476 +++-----------------
163+ .../golang.org/x/sys/unix/zerrors_linux_ppc64le.go | 3476 +++-----------------
164+ .../golang.org/x/sys/unix/zerrors_linux_riscv64.go | 3326 +++----------------
165+ .../golang.org/x/sys/unix/zerrors_linux_s390x.go | 3472 +++----------------
166+ .../golang.org/x/sys/unix/zerrors_linux_sparc64.go | 3454 +++----------------
167+ vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go | 6 +
168+ .../golang.org/x/sys/unix/zerrors_netbsd_amd64.go | 6 +
169+ vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go | 6 +
170+ .../golang.org/x/sys/unix/zerrors_netbsd_arm64.go | 6 +
171+ .../golang.org/x/sys/unix/zerrors_openbsd_386.go | 7 +
172+ .../golang.org/x/sys/unix/zerrors_openbsd_amd64.go | 7 +
173+ .../golang.org/x/sys/unix/zerrors_openbsd_arm.go | 7 +
174+ .../golang.org/x/sys/unix/zerrors_openbsd_arm64.go | 7 +
175+ .../x/sys/unix/zerrors_openbsd_mips64.go | 1862 +++++++++++
176+ .../x/sys/unix/zsyscall_darwin_386.1_11.go | 1811 ----------
177+ .../golang.org/x/sys/unix/zsyscall_darwin_386.go | 139 +-
178+ vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s | 14 +-
179+ .../x/sys/unix/zsyscall_darwin_amd64.1_11.go | 1811 ----------
180+ .../golang.org/x/sys/unix/zsyscall_darwin_amd64.go | 139 +-
181+ .../golang.org/x/sys/unix/zsyscall_darwin_amd64.s | 14 +-
182+ .../x/sys/unix/zsyscall_darwin_arm.1_11.go | 1784 ----------
183+ .../golang.org/x/sys/unix/zsyscall_darwin_arm.go | 139 +-
184+ vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s | 14 +-
185+ .../x/sys/unix/zsyscall_darwin_arm64.1_11.go | 1784 ----------
186+ .../golang.org/x/sys/unix/zsyscall_darwin_arm64.go | 139 +-
187+ .../golang.org/x/sys/unix/zsyscall_darwin_arm64.s | 14 +-
188+ .../golang.org/x/sys/unix/zsyscall_freebsd_386.go | 52 +-
189+ .../x/sys/unix/zsyscall_freebsd_amd64.go | 32 +-
190+ .../x/sys/unix/zsyscall_freebsd_arm64.go | 34 +-
191+ .../x/sys/unix/zsyscall_illumos_amd64.go | 114 +
192+ vendor/golang.org/x/sys/unix/zsyscall_linux.go | 1933 +++++++++++
193+ vendor/golang.org/x/sys/unix/zsyscall_linux_386.go | 1831 +----------
194+ .../golang.org/x/sys/unix/zsyscall_linux_amd64.go | 1831 +----------
195+ vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go | 1831 +----------
196+ .../golang.org/x/sys/unix/zsyscall_linux_arm64.go | 1833 +----------
197+ .../golang.org/x/sys/unix/zsyscall_linux_mips.go | 1831 +----------
198+ .../golang.org/x/sys/unix/zsyscall_linux_mips64.go | 1831 +----------
199+ .../x/sys/unix/zsyscall_linux_mips64le.go | 1831 +----------
200+ .../golang.org/x/sys/unix/zsyscall_linux_mipsle.go | 1831 +----------
201+ .../golang.org/x/sys/unix/zsyscall_linux_ppc64.go | 1831 +----------
202+ .../x/sys/unix/zsyscall_linux_ppc64le.go | 1831 +----------
203+ .../x/sys/unix/zsyscall_linux_riscv64.go | 1829 +---------
204+ .../golang.org/x/sys/unix/zsyscall_linux_s390x.go | 1831 +----------
205+ .../x/sys/unix/zsyscall_linux_sparc64.go | 1831 +----------
206+ .../x/sys/unix/zsyscall_openbsd_mips64.go | 1692 ++++++++++
207+ .../golang.org/x/sys/unix/zsysctl_openbsd_386.go | 3 +-
208+ .../golang.org/x/sys/unix/zsysctl_openbsd_amd64.go | 1 +
209+ .../golang.org/x/sys/unix/zsysctl_openbsd_arm.go | 1 +
210+ .../x/sys/unix/zsysctl_openbsd_mips64.go | 279 ++
211+ vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go | 436 ---
212+ .../golang.org/x/sys/unix/zsysnum_darwin_amd64.go | 438 ---
213+ vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go | 436 ---
214+ .../golang.org/x/sys/unix/zsysnum_darwin_arm64.go | 436 ---
215+ vendor/golang.org/x/sys/unix/zsysnum_linux_386.go | 3 +
216+ .../golang.org/x/sys/unix/zsysnum_linux_amd64.go | 3 +
217+ vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go | 3 +
218+ .../golang.org/x/sys/unix/zsysnum_linux_arm64.go | 3 +
219+ vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go | 3 +
220+ .../golang.org/x/sys/unix/zsysnum_linux_mips64.go | 3 +
221+ .../x/sys/unix/zsysnum_linux_mips64le.go | 3 +
222+ .../golang.org/x/sys/unix/zsysnum_linux_mipsle.go | 3 +
223+ .../golang.org/x/sys/unix/zsysnum_linux_ppc64.go | 3 +
224+ .../golang.org/x/sys/unix/zsysnum_linux_ppc64le.go | 3 +
225+ .../golang.org/x/sys/unix/zsysnum_linux_riscv64.go | 3 +
226+ .../golang.org/x/sys/unix/zsysnum_linux_s390x.go | 3 +
227+ .../golang.org/x/sys/unix/zsysnum_linux_sparc64.go | 3 +
228+ .../x/sys/unix/zsysnum_openbsd_mips64.go | 220 ++
229+ vendor/golang.org/x/sys/unix/ztypes_darwin_386.go | 4 +
230+ .../golang.org/x/sys/unix/ztypes_darwin_amd64.go | 4 +
231+ vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go | 4 +
232+ .../golang.org/x/sys/unix/ztypes_darwin_arm64.go | 4 +
233+ vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go | 39 +-
234+ .../golang.org/x/sys/unix/ztypes_freebsd_amd64.go | 24 +-
235+ vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go | 12 +-
236+ .../golang.org/x/sys/unix/ztypes_freebsd_arm64.go | 54 +-
237+ vendor/golang.org/x/sys/unix/ztypes_linux.go | 2569 +++++++++++++++
238+ vendor/golang.org/x/sys/unix/ztypes_linux_386.go | 2236 +------------
239+ vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go | 2238 +------------
240+ vendor/golang.org/x/sys/unix/ztypes_linux_arm.go | 2238 +------------
241+ vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go | 2238 +------------
242+ vendor/golang.org/x/sys/unix/ztypes_linux_mips.go | 2238 +------------
243+ .../golang.org/x/sys/unix/ztypes_linux_mips64.go | 2238 +------------
244+ .../golang.org/x/sys/unix/ztypes_linux_mips64le.go | 2238 +------------
245+ .../golang.org/x/sys/unix/ztypes_linux_mipsle.go | 2238 +------------
246+ vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go | 2238 +------------
247+ .../golang.org/x/sys/unix/ztypes_linux_ppc64le.go | 2238 +------------
248+ .../golang.org/x/sys/unix/ztypes_linux_riscv64.go | 2238 +------------
249+ vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go | 2238 +------------
250+ .../golang.org/x/sys/unix/ztypes_linux_sparc64.go | 2238 +------------
251+ .../golang.org/x/sys/unix/ztypes_openbsd_mips64.go | 565 ++++
252+ vendor/golang.org/x/sys/windows/dll_windows.go | 29 +
253+ vendor/golang.org/x/sys/windows/env_windows.go | 11 +-
254+ vendor/golang.org/x/sys/windows/memory_windows.go | 5 +
255+ .../golang.org/x/sys/windows/security_windows.go | 20 +-
256+ vendor/golang.org/x/sys/windows/service.go | 2 +
257+ vendor/golang.org/x/sys/windows/svc/mgr/config.go | 40 +-
258+ vendor/golang.org/x/sys/windows/svc/mgr/mgr.go | 13 +-
259+ .../golang.org/x/sys/windows/svc/mgr/recovery.go | 12 +-
260+ vendor/golang.org/x/sys/windows/svc/security.go | 7 +-
261+ vendor/golang.org/x/sys/windows/svc/service.go | 16 +-
262+ vendor/golang.org/x/sys/windows/svc/sys_amd64.s | 10 +-
263+ vendor/golang.org/x/sys/windows/syscall_windows.go | 40 +-
264+ vendor/golang.org/x/sys/windows/types_windows.go | 12 -
265+ .../golang.org/x/sys/windows/types_windows_386.go | 13 +
266+ .../x/sys/windows/types_windows_amd64.go | 12 +
267+ .../golang.org/x/sys/windows/types_windows_arm.go | 13 +
268+ .../golang.org/x/sys/windows/zsyscall_windows.go | 32 +
269+ vendor/golang.org/x/tools/cmd/goimports/doc.go | 4 +
270+ .../golang.org/x/tools/cmd/goimports/goimports.go | 19 +-
271+ vendor/golang.org/x/tools/go/analysis/analysis.go | 33 +-
272+ .../golang.org/x/tools/go/analysis/diagnostic.go | 4 +
273+ vendor/golang.org/x/tools/go/analysis/doc.go | 34 +-
274+ vendor/golang.org/x/tools/go/analysis/validate.go | 37 +-
275+ vendor/golang.org/x/tools/go/ast/astutil/util.go | 4 +
276+ .../x/tools/go/ast/inspector/inspector.go | 6 +-
277+ .../golang.org/x/tools/go/ast/inspector/typeof.go | 4 +
278+ .../golang.org/x/tools/go/buildutil/fakecontext.go | 4 +
279+ vendor/golang.org/x/tools/go/buildutil/tags.go | 4 +
280+ .../x/tools/go/internal/gcimporter/gcimporter.go | 2 +-
281+ .../x/tools/go/internal/packagesdriver/sizes.go | 83 +-
282+ vendor/golang.org/x/tools/go/packages/external.go | 2 +-
283+ vendor/golang.org/x/tools/go/packages/golist.go | 390 ++-
284+ .../x/tools/go/packages/golist_overlay.go | 258 +-
285+ .../x/tools/go/packages/loadmode_string.go | 2 +-
286+ vendor/golang.org/x/tools/go/packages/packages.go | 103 +-
287+ vendor/golang.org/x/tools/go/packages/visit.go | 4 +
288+ .../x/tools/go/types/objectpath/objectpath.go | 5 +-
289+ .../x/tools/internal/analysisinternal/analysis.go | 425 +++
290+ .../x/tools/internal/event/core/event.go | 85 +
291+ .../x/tools/internal/event/core/export.go | 70 +
292+ .../golang.org/x/tools/internal/event/core/fast.go | 77 +
293+ vendor/golang.org/x/tools/internal/event/doc.go | 7 +
294+ vendor/golang.org/x/tools/internal/event/event.go | 127 +
295+ .../golang.org/x/tools/internal/event/keys/keys.go | 564 ++++
296+ .../x/tools/internal/event/keys/standard.go | 22 +
297+ .../x/tools/internal/event/label/label.go | 213 ++
298+ .../x/tools/internal/gocommand/invoke.go | 199 +-
299+ .../x/tools/internal/gocommand/vendor.go | 102 +
300+ .../x/tools/internal/gocommand/version.go | 51 +
301+ .../golang.org/x/tools/internal/gopathwalk/walk.go | 11 -
302+ vendor/golang.org/x/tools/internal/imports/fix.go | 320 +-
303+ .../golang.org/x/tools/internal/imports/imports.go | 88 +-
304+ vendor/golang.org/x/tools/internal/imports/mod.go | 162 +-
305+ .../x/tools/internal/imports/mod_cache.go | 4 +
306+ .../x/tools/internal/imports/sortimports.go | 20 +-
307+ .../golang.org/x/tools/internal/imports/zstdlib.go | 139 +
308+ .../golang.org/x/tools/internal/lsp/fuzzy/input.go | 168 +
309+ .../x/tools/internal/lsp/fuzzy/matcher.go | 398 +++
310+ .../x/tools/internal/packagesinternal/packages.go | 36 +-
311+ .../x/tools/internal/typesinternal/errorcode.go | 1358 ++++++++
312+ .../internal/typesinternal/errorcode_string.go | 152 +
313+ .../x/tools/internal/typesinternal/types.go | 45 +
314+ vendor/modules.txt | 24 +-
315+ 285 files changed, 26219 insertions(+), 100869 deletions(-)
316+ create mode 100644 vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go
317+ delete mode 100644 vendor/golang.org/x/net/internal/socket/sys_bsdvar.go
318+ delete mode 100644 vendor/golang.org/x/net/internal/socket/sys_darwin.go
319+ delete mode 100644 vendor/golang.org/x/net/internal/socket/sys_dragonfly.go
320+ delete mode 100644 vendor/golang.org/x/net/internal/socket/sys_go1_11_darwin.go
321+ create mode 100644 vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go
322+ create mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s
323+ create mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
324+ delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
325+ delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
326+ delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
327+ delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
328+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_illumos.go
329+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go
330+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go
331+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux.go
332+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go
333+ delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
334+ delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
335+ delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
336+ delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
337+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
338+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux.go
339+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go
340+ create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go
341+ delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
342+ delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
343+ delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
344+ delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
345+ create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go
346+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux.go
347+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go
348+ create mode 100644 vendor/golang.org/x/tools/internal/analysisinternal/analysis.go
349+ create mode 100644 vendor/golang.org/x/tools/internal/event/core/event.go
350+ create mode 100644 vendor/golang.org/x/tools/internal/event/core/export.go
351+ create mode 100644 vendor/golang.org/x/tools/internal/event/core/fast.go
352+ create mode 100644 vendor/golang.org/x/tools/internal/event/doc.go
353+ create mode 100644 vendor/golang.org/x/tools/internal/event/event.go
354+ create mode 100644 vendor/golang.org/x/tools/internal/event/keys/keys.go
355+ create mode 100644 vendor/golang.org/x/tools/internal/event/keys/standard.go
356+ create mode 100644 vendor/golang.org/x/tools/internal/event/label/label.go
357+ create mode 100644 vendor/golang.org/x/tools/internal/gocommand/vendor.go
358+ create mode 100644 vendor/golang.org/x/tools/internal/gocommand/version.go
359+ create mode 100644 vendor/golang.org/x/tools/internal/lsp/fuzzy/input.go
360+ create mode 100644 vendor/golang.org/x/tools/internal/lsp/fuzzy/matcher.go
361+ create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/errorcode.go
362+ create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go
363+ create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/types.go
364+
365+diff --git a/go.mod b/go.mod
366+index 1f6bd6b..ebdb5df 100644
367+--- a/go.mod
368++++ b/go.mod
369+@@ -130,12 +130,11 @@ require (
370+ go.starlark.net v0.0.0-20191227232015-caa3e9aa5008
371+ golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 // indirect
372+ golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect
373+- golang.org/x/net v0.0.0-20200301022130-244492dfa37a
374++ golang.org/x/net v0.0.0-20201021035429-f5854403a974
375+ golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
376+- golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a
377+- golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4
378++ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
379++ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f
380+ golang.org/x/text v0.3.3
381+- golang.org/x/tools v0.0.0-20200317043434-63da46f3035e // indirect
382+ golang.zx2c4.com/wireguard/wgctrl v0.0.0-20200205215550-e35592f146e4
383+ gonum.org/v1/gonum v0.6.2 // indirect
384+ google.golang.org/api v0.20.0
385+@@ -155,3 +154,6 @@ require (
386+
387+ // replaced due to https://github.com/satori/go.uuid/issues/73
388+ replace github.com/satori/go.uuid => github.com/gofrs/uuid v3.2.0+incompatible
389++
390++// replaced due to https://github.com/influxdata/telegraf/issues/9181
391++replace github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2
392+diff --git a/go.sum b/go.sum
393+index c4ff76c..24d1968 100644
394+--- a/go.sum
395++++ b/go.sum
396+@@ -229,10 +229,8 @@ github.com/gofrs/uuid v2.1.0+incompatible h1:8oEj3gioPmmDAOLQUZdnW+h4FZu9aSE/SQI
397+ github.com/gofrs/uuid v2.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
398+ github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE=
399+ github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
400+-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
401+-github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
402+-github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
403+-github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
404++github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
405++github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
406+ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
407+ github.com/golang/geo v0.0.0-20190916061304-5b978397cfec h1:lJwO/92dFXWeXOZdoGXgptLmNLwynMSHUmU6besqtiw=
408+ github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI=
409+@@ -372,7 +370,7 @@ github.com/karrick/godirwalk v1.12.0 h1:nkS4xxsjiZMvVlazd0mFyiwD4BR9f3m6LXGhM2TU
410+ github.com/karrick/godirwalk v1.12.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
411+ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
412+ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
413+-github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
414++github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
415+ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
416+ github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
417+ github.com/klauspost/compress v1.9.2 h1:LfVyl+ZlLlLDeQ/d2AqfGIIH4qEDu0Ed2S5GyhCWIWY=
418+@@ -571,7 +569,8 @@ github.com/wvanbergen/kazoo-go v0.0.0-20180202103751-f72d8611297a h1:ILoU84rj4AQ
419+ github.com/wvanbergen/kazoo-go v0.0.0-20180202103751-f72d8611297a/go.mod h1:vQQATAGxVK20DC1rRubTJbZDDhhpA4QfU02pMdPxGO4=
420+ github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
421+ github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
422+-github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
423++github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
424++github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
425+ github.com/yuin/gopher-lua v0.0.0-20180630135845-46796da1b0b4 h1:f6CCNiTjQZ0uWK4jPwhwYB8QIGGfn0ssD9kVzRUUUpk=
426+ github.com/yuin/gopher-lua v0.0.0-20180630135845-46796da1b0b4/go.mod h1:aEV29XrmTYFr3CiRxZeGHpkvbwq+prZduBqMaascyCU=
427+ go.opencensus.io v0.20.1 h1:pMEjRZ1M4ebWGikflH7nQpV6+Zr88KBMA2XJD3sbijw=
428+@@ -597,6 +596,8 @@ golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 h1:ULYEB3JvPRE/IfO+9uO7vK
429+ golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
430+ golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72 h1:+ELyKg6m8UBf0nPFSqD0mi7zUfwPyXo23HNjMnXPz7w=
431+ golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
432++golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
433++golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
434+ golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
435+ golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
436+ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
437+@@ -634,6 +635,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB
438+ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
439+ golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
440+ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
441++golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
442++golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
443+ golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
444+ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
445+ golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
446+@@ -663,8 +666,8 @@ golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLL
447+ golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI=
448+ golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
449+ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
450+-golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
451+-golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
452++golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI=
453++golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
454+ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
455+ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421 h1:Wo7BWFiOk0QRFMLYMqJGFMd9CgUAcGx7V+qEg/h5IBI=
456+ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
457+@@ -679,8 +682,8 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ
458+ golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
459+ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
460+ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
461+-golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a h1:WXEvlFVvvGxCJLG6REjsT03iWnKLEWinaScsxF2Vm2o=
462+-golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
463++golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=
464++golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
465+ golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
466+ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
467+ golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
468+@@ -714,6 +717,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w
469+ golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
470+ golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4 h1:sfkvUWPNGwSV+8/fNqctR5lS2AqCSqYwXdrjCxp/dXo=
471+ golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
472++golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
473++golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
474+ golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
475+ golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
476+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
477+@@ -731,7 +736,6 @@ golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGm
478+ golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
479+ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
480+ golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
481+-golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
482+ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
483+ golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
484+ golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
485+@@ -760,13 +764,16 @@ golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapK
486+ golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
487+ golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
488+ golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
489+-golang.org/x/tools v0.0.0-20200317043434-63da46f3035e h1:8ogAbHWoJTPepnVbNRqXLOpzMkl0rtRsM7crbflc4XM=
490+-golang.org/x/tools v0.0.0-20200317043434-63da46f3035e/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
491++golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
492++golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ=
493++golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
494+ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
495+ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
496+ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
497+ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
498+ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
499++golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
500++golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
501+ golang.zx2c4.com/wireguard v0.0.20200121 h1:vcswa5Q6f+sylDfjqyrVNNrjsFUUbPsgAQTBCAg/Qf8=
502+ golang.zx2c4.com/wireguard v0.0.20200121/go.mod h1:P2HsVp8SKwZEufsnezXZA4GRX/T49/HlU7DGuelXsU4=
503+ golang.zx2c4.com/wireguard/wgctrl v0.0.0-20200205215550-e35592f146e4 h1:KTi97NIQGgSMaN0v/oxniJV0MEzfzmrDUOAWxombQVc=
504+diff --git a/vendor/github.com/gogo/protobuf/proto/encode.go b/vendor/github.com/gogo/protobuf/proto/encode.go
505+index 3abfed2..9581ccd 100644
506+--- a/vendor/github.com/gogo/protobuf/proto/encode.go
507++++ b/vendor/github.com/gogo/protobuf/proto/encode.go
508+@@ -189,6 +189,8 @@ type Marshaler interface {
509+ // prefixed by a varint-encoded length.
510+ func (p *Buffer) EncodeMessage(pb Message) error {
511+ siz := Size(pb)
512++ sizVar := SizeVarint(uint64(siz))
513++ p.grow(siz + sizVar)
514+ p.EncodeVarint(uint64(siz))
515+ return p.Marshal(pb)
516+ }
517+diff --git a/vendor/github.com/gogo/protobuf/proto/lib.go b/vendor/github.com/gogo/protobuf/proto/lib.go
518+index d17f802..80db1c1 100644
519+--- a/vendor/github.com/gogo/protobuf/proto/lib.go
520++++ b/vendor/github.com/gogo/protobuf/proto/lib.go
521+@@ -948,13 +948,19 @@ func isProto3Zero(v reflect.Value) bool {
522+ return false
523+ }
524+
525+-// ProtoPackageIsVersion2 is referenced from generated protocol buffer files
526+-// to assert that that code is compatible with this version of the proto package.
527+-const GoGoProtoPackageIsVersion2 = true
528+-
529+-// ProtoPackageIsVersion1 is referenced from generated protocol buffer files
530+-// to assert that that code is compatible with this version of the proto package.
531+-const GoGoProtoPackageIsVersion1 = true
532++const (
533++ // ProtoPackageIsVersion3 is referenced from generated protocol buffer files
534++ // to assert that that code is compatible with this version of the proto package.
535++ GoGoProtoPackageIsVersion3 = true
536++
537++ // ProtoPackageIsVersion2 is referenced from generated protocol buffer files
538++ // to assert that that code is compatible with this version of the proto package.
539++ GoGoProtoPackageIsVersion2 = true
540++
541++ // ProtoPackageIsVersion1 is referenced from generated protocol buffer files
542++ // to assert that that code is compatible with this version of the proto package.
543++ GoGoProtoPackageIsVersion1 = true
544++)
545+
546+ // InternalMessageInfo is a type used internally by generated .pb.go files.
547+ // This type is not intended to be used by non-generated code.
548+diff --git a/vendor/github.com/gogo/protobuf/proto/properties.go b/vendor/github.com/gogo/protobuf/proto/properties.go
549+index c9e5fa0..28da147 100644
550+--- a/vendor/github.com/gogo/protobuf/proto/properties.go
551++++ b/vendor/github.com/gogo/protobuf/proto/properties.go
552+@@ -43,7 +43,6 @@ package proto
553+ import (
554+ "fmt"
555+ "log"
556+- "os"
557+ "reflect"
558+ "sort"
559+ "strconv"
560+@@ -205,7 +204,7 @@ func (p *Properties) Parse(s string) {
561+ // "bytes,49,opt,name=foo,def=hello!"
562+ fields := strings.Split(s, ",") // breaks def=, but handled below.
563+ if len(fields) < 2 {
564+- fmt.Fprintf(os.Stderr, "proto: tag has too few fields: %q\n", s)
565++ log.Printf("proto: tag has too few fields: %q", s)
566+ return
567+ }
568+
569+@@ -225,7 +224,7 @@ func (p *Properties) Parse(s string) {
570+ p.WireType = WireBytes
571+ // no numeric converter for non-numeric types
572+ default:
573+- fmt.Fprintf(os.Stderr, "proto: tag has unknown wire type: %q\n", s)
574++ log.Printf("proto: tag has unknown wire type: %q", s)
575+ return
576+ }
577+
578+@@ -400,6 +399,15 @@ func GetProperties(t reflect.Type) *StructProperties {
579+ return sprop
580+ }
581+
582++type (
583++ oneofFuncsIface interface {
584++ XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})
585++ }
586++ oneofWrappersIface interface {
587++ XXX_OneofWrappers() []interface{}
588++ }
589++)
590++
591+ // getPropertiesLocked requires that propertiesMu is held.
592+ func getPropertiesLocked(t reflect.Type) *StructProperties {
593+ if prop, ok := propertiesMap[t]; ok {
594+@@ -441,37 +449,40 @@ func getPropertiesLocked(t reflect.Type) *StructProperties {
595+ // Re-order prop.order.
596+ sort.Sort(prop)
597+
598+- type oneofMessage interface {
599+- XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})
600+- }
601+- if om, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); isOneofMessage && ok {
602++ if isOneofMessage {
603+ var oots []interface{}
604+- _, _, _, oots = om.XXX_OneofFuncs()
605+-
606+- // Interpret oneof metadata.
607+- prop.OneofTypes = make(map[string]*OneofProperties)
608+- for _, oot := range oots {
609+- oop := &OneofProperties{
610+- Type: reflect.ValueOf(oot).Type(), // *T
611+- Prop: new(Properties),
612+- }
613+- sft := oop.Type.Elem().Field(0)
614+- oop.Prop.Name = sft.Name
615+- oop.Prop.Parse(sft.Tag.Get("protobuf"))
616+- // There will be exactly one interface field that
617+- // this new value is assignable to.
618+- for i := 0; i < t.NumField(); i++ {
619+- f := t.Field(i)
620+- if f.Type.Kind() != reflect.Interface {
621+- continue
622++ switch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {
623++ case oneofFuncsIface:
624++ _, _, _, oots = m.XXX_OneofFuncs()
625++ case oneofWrappersIface:
626++ oots = m.XXX_OneofWrappers()
627++ }
628++ if len(oots) > 0 {
629++ // Interpret oneof metadata.
630++ prop.OneofTypes = make(map[string]*OneofProperties)
631++ for _, oot := range oots {
632++ oop := &OneofProperties{
633++ Type: reflect.ValueOf(oot).Type(), // *T
634++ Prop: new(Properties),
635+ }
636+- if !oop.Type.AssignableTo(f.Type) {
637+- continue
638++ sft := oop.Type.Elem().Field(0)
639++ oop.Prop.Name = sft.Name
640++ oop.Prop.Parse(sft.Tag.Get("protobuf"))
641++ // There will be exactly one interface field that
642++ // this new value is assignable to.
643++ for i := 0; i < t.NumField(); i++ {
644++ f := t.Field(i)
645++ if f.Type.Kind() != reflect.Interface {
646++ continue
647++ }
648++ if !oop.Type.AssignableTo(f.Type) {
649++ continue
650++ }
651++ oop.Field = i
652++ break
653+ }
654+- oop.Field = i
655+- break
656++ prop.OneofTypes[oop.Prop.OrigName] = oop
657+ }
658+- prop.OneofTypes[oop.Prop.OrigName] = oop
659+ }
660+ }
661+
662+diff --git a/vendor/github.com/gogo/protobuf/proto/table_marshal.go b/vendor/github.com/gogo/protobuf/proto/table_marshal.go
663+index 9b1538d..f8babde 100644
664+--- a/vendor/github.com/gogo/protobuf/proto/table_marshal.go
665++++ b/vendor/github.com/gogo/protobuf/proto/table_marshal.go
666+@@ -389,8 +389,13 @@ func (u *marshalInfo) computeMarshalInfo() {
667+ // get oneof implementers
668+ var oneofImplementers []interface{}
669+ // gogo: isOneofMessage is needed for embedded oneof messages, without a marshaler and unmarshaler
670+- if m, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); ok && isOneofMessage {
671+- _, _, _, oneofImplementers = m.XXX_OneofFuncs()
672++ if isOneofMessage {
673++ switch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {
674++ case oneofFuncsIface:
675++ _, _, _, oneofImplementers = m.XXX_OneofFuncs()
676++ case oneofWrappersIface:
677++ oneofImplementers = m.XXX_OneofWrappers()
678++ }
679+ }
680+
681+ // normal fields
682+@@ -519,10 +524,6 @@ func (fi *marshalFieldInfo) computeOneofFieldInfo(f *reflect.StructField, oneofI
683+ }
684+ }
685+
686+-type oneofMessage interface {
687+- XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})
688+-}
689+-
690+ // wiretype returns the wire encoding of the type.
691+ func wiretype(encoding string) uint64 {
692+ switch encoding {
693+@@ -2968,7 +2969,9 @@ func (p *Buffer) Marshal(pb Message) error {
694+ if m, ok := pb.(newMarshaler); ok {
695+ siz := m.XXX_Size()
696+ p.grow(siz) // make sure buf has enough capacity
697+- p.buf, err = m.XXX_Marshal(p.buf, p.deterministic)
698++ pp := p.buf[len(p.buf) : len(p.buf) : len(p.buf)+siz]
699++ pp, err = m.XXX_Marshal(pp, p.deterministic)
700++ p.buf = append(p.buf, pp...)
701+ return err
702+ }
703+ if m, ok := pb.(Marshaler); ok {
704+diff --git a/vendor/github.com/gogo/protobuf/proto/table_merge.go b/vendor/github.com/gogo/protobuf/proto/table_merge.go
705+index f520106..60dcf70 100644
706+--- a/vendor/github.com/gogo/protobuf/proto/table_merge.go
707++++ b/vendor/github.com/gogo/protobuf/proto/table_merge.go
708+@@ -530,6 +530,25 @@ func (mi *mergeInfo) computeMergeInfo() {
709+ }
710+ case reflect.Struct:
711+ switch {
712++ case isSlice && !isPointer: // E.g. []pb.T
713++ mergeInfo := getMergeInfo(tf)
714++ zero := reflect.Zero(tf)
715++ mfi.merge = func(dst, src pointer) {
716++ // TODO: Make this faster?
717++ dstsp := dst.asPointerTo(f.Type)
718++ dsts := dstsp.Elem()
719++ srcs := src.asPointerTo(f.Type).Elem()
720++ for i := 0; i < srcs.Len(); i++ {
721++ dsts = reflect.Append(dsts, zero)
722++ srcElement := srcs.Index(i).Addr()
723++ dstElement := dsts.Index(dsts.Len() - 1).Addr()
724++ mergeInfo.merge(valToPointer(dstElement), valToPointer(srcElement))
725++ }
726++ if dsts.IsNil() {
727++ dsts = reflect.MakeSlice(f.Type, 0, 0)
728++ }
729++ dstsp.Elem().Set(dsts)
730++ }
731+ case !isPointer:
732+ mergeInfo := getMergeInfo(tf)
733+ mfi.merge = func(dst, src pointer) {
734+diff --git a/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go b/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
735+index bb2622f..9372293 100644
736+--- a/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
737++++ b/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
738+@@ -371,15 +371,18 @@ func (u *unmarshalInfo) computeUnmarshalInfo() {
739+ }
740+
741+ // Find any types associated with oneof fields.
742+- // TODO: XXX_OneofFuncs returns more info than we need. Get rid of some of it?
743+- fn := reflect.Zero(reflect.PtrTo(t)).MethodByName("XXX_OneofFuncs")
744+ // gogo: len(oneofFields) > 0 is needed for embedded oneof messages, without a marshaler and unmarshaler
745+- if fn.IsValid() && len(oneofFields) > 0 {
746+- res := fn.Call(nil)[3] // last return value from XXX_OneofFuncs: []interface{}
747+- for i := res.Len() - 1; i >= 0; i-- {
748+- v := res.Index(i) // interface{}
749+- tptr := reflect.ValueOf(v.Interface()).Type() // *Msg_X
750+- typ := tptr.Elem() // Msg_X
751++ if len(oneofFields) > 0 {
752++ var oneofImplementers []interface{}
753++ switch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {
754++ case oneofFuncsIface:
755++ _, _, _, oneofImplementers = m.XXX_OneofFuncs()
756++ case oneofWrappersIface:
757++ oneofImplementers = m.XXX_OneofWrappers()
758++ }
759++ for _, v := range oneofImplementers {
760++ tptr := reflect.TypeOf(v) // *Msg_X
761++ typ := tptr.Elem() // Msg_X
762+
763+ f := typ.Field(0) // oneof implementers have one field
764+ baseUnmarshal := fieldUnmarshaler(&f)
765+@@ -407,11 +410,12 @@ func (u *unmarshalInfo) computeUnmarshalInfo() {
766+ u.setTag(fieldNum, of.field, unmarshal, 0, name)
767+ }
768+ }
769++
770+ }
771+ }
772+
773+ // Get extension ranges, if any.
774+- fn = reflect.Zero(reflect.PtrTo(t)).MethodByName("ExtensionRangeArray")
775++ fn := reflect.Zero(reflect.PtrTo(t)).MethodByName("ExtensionRangeArray")
776+ if fn.IsValid() {
777+ if !u.extensions.IsValid() && !u.oldExtensions.IsValid() && !u.bytesExtensions.IsValid() {
778+ panic("a message with extensions, but no extensions field in " + t.Name())
779+diff --git a/vendor/github.com/gogo/protobuf/proto/text.go b/vendor/github.com/gogo/protobuf/proto/text.go
780+index 0407ba8..87416af 100644
781+--- a/vendor/github.com/gogo/protobuf/proto/text.go
782++++ b/vendor/github.com/gogo/protobuf/proto/text.go
783+@@ -476,6 +476,8 @@ func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error {
784+ return nil
785+ }
786+
787++var textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()
788++
789+ // writeAny writes an arbitrary field.
790+ func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error {
791+ v = reflect.Indirect(v)
792+@@ -589,8 +591,8 @@ func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Propert
793+ // mutating this value.
794+ v = v.Addr()
795+ }
796+- if etm, ok := v.Interface().(encoding.TextMarshaler); ok {
797+- text, err := etm.MarshalText()
798++ if v.Type().Implements(textMarshalerType) {
799++ text, err := v.Interface().(encoding.TextMarshaler).MarshalText()
800+ if err != nil {
801+ return err
802+ }
803+diff --git a/vendor/github.com/gogo/protobuf/proto/text_parser.go b/vendor/github.com/gogo/protobuf/proto/text_parser.go
804+index 1ce0be2..f85c0cc 100644
805+--- a/vendor/github.com/gogo/protobuf/proto/text_parser.go
806++++ b/vendor/github.com/gogo/protobuf/proto/text_parser.go
807+@@ -318,7 +318,7 @@ func unescape(s string) (ch string, tail string, err error) {
808+ if i > utf8.MaxRune {
809+ return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss)
810+ }
811+- return string(i), s, nil
812++ return string(rune(i)), s, nil
813+ }
814+ return "", "", fmt.Errorf(`unknown escape \%c`, r)
815+ }
816+diff --git a/vendor/golang.org/x/net/html/const.go b/vendor/golang.org/x/net/html/const.go
817+index 73804d3..ff7acf2 100644
818+--- a/vendor/golang.org/x/net/html/const.go
819++++ b/vendor/golang.org/x/net/html/const.go
820+@@ -52,7 +52,7 @@ var isSpecialElementMap = map[string]bool{
821+ "iframe": true,
822+ "img": true,
823+ "input": true,
824+- "keygen": true,
825++ "keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility.
826+ "li": true,
827+ "link": true,
828+ "listing": true,
829+diff --git a/vendor/golang.org/x/net/html/foreign.go b/vendor/golang.org/x/net/html/foreign.go
830+index 74774c4..9da9e9d 100644
831+--- a/vendor/golang.org/x/net/html/foreign.go
832++++ b/vendor/golang.org/x/net/html/foreign.go
833+@@ -161,65 +161,62 @@ var mathMLAttributeAdjustments = map[string]string{
834+ }
835+
836+ var svgAttributeAdjustments = map[string]string{
837+- "attributename": "attributeName",
838+- "attributetype": "attributeType",
839+- "basefrequency": "baseFrequency",
840+- "baseprofile": "baseProfile",
841+- "calcmode": "calcMode",
842+- "clippathunits": "clipPathUnits",
843+- "contentscripttype": "contentScriptType",
844+- "contentstyletype": "contentStyleType",
845+- "diffuseconstant": "diffuseConstant",
846+- "edgemode": "edgeMode",
847+- "externalresourcesrequired": "externalResourcesRequired",
848+- "filterunits": "filterUnits",
849+- "glyphref": "glyphRef",
850+- "gradienttransform": "gradientTransform",
851+- "gradientunits": "gradientUnits",
852+- "kernelmatrix": "kernelMatrix",
853+- "kernelunitlength": "kernelUnitLength",
854+- "keypoints": "keyPoints",
855+- "keysplines": "keySplines",
856+- "keytimes": "keyTimes",
857+- "lengthadjust": "lengthAdjust",
858+- "limitingconeangle": "limitingConeAngle",
859+- "markerheight": "markerHeight",
860+- "markerunits": "markerUnits",
861+- "markerwidth": "markerWidth",
862+- "maskcontentunits": "maskContentUnits",
863+- "maskunits": "maskUnits",
864+- "numoctaves": "numOctaves",
865+- "pathlength": "pathLength",
866+- "patterncontentunits": "patternContentUnits",
867+- "patterntransform": "patternTransform",
868+- "patternunits": "patternUnits",
869+- "pointsatx": "pointsAtX",
870+- "pointsaty": "pointsAtY",
871+- "pointsatz": "pointsAtZ",
872+- "preservealpha": "preserveAlpha",
873+- "preserveaspectratio": "preserveAspectRatio",
874+- "primitiveunits": "primitiveUnits",
875+- "refx": "refX",
876+- "refy": "refY",
877+- "repeatcount": "repeatCount",
878+- "repeatdur": "repeatDur",
879+- "requiredextensions": "requiredExtensions",
880+- "requiredfeatures": "requiredFeatures",
881+- "specularconstant": "specularConstant",
882+- "specularexponent": "specularExponent",
883+- "spreadmethod": "spreadMethod",
884+- "startoffset": "startOffset",
885+- "stddeviation": "stdDeviation",
886+- "stitchtiles": "stitchTiles",
887+- "surfacescale": "surfaceScale",
888+- "systemlanguage": "systemLanguage",
889+- "tablevalues": "tableValues",
890+- "targetx": "targetX",
891+- "targety": "targetY",
892+- "textlength": "textLength",
893+- "viewbox": "viewBox",
894+- "viewtarget": "viewTarget",
895+- "xchannelselector": "xChannelSelector",
896+- "ychannelselector": "yChannelSelector",
897+- "zoomandpan": "zoomAndPan",
898++ "attributename": "attributeName",
899++ "attributetype": "attributeType",
900++ "basefrequency": "baseFrequency",
901++ "baseprofile": "baseProfile",
902++ "calcmode": "calcMode",
903++ "clippathunits": "clipPathUnits",
904++ "diffuseconstant": "diffuseConstant",
905++ "edgemode": "edgeMode",
906++ "filterunits": "filterUnits",
907++ "glyphref": "glyphRef",
908++ "gradienttransform": "gradientTransform",
909++ "gradientunits": "gradientUnits",
910++ "kernelmatrix": "kernelMatrix",
911++ "kernelunitlength": "kernelUnitLength",
912++ "keypoints": "keyPoints",
913++ "keysplines": "keySplines",
914++ "keytimes": "keyTimes",
915++ "lengthadjust": "lengthAdjust",
916++ "limitingconeangle": "limitingConeAngle",
917++ "markerheight": "markerHeight",
918++ "markerunits": "markerUnits",
919++ "markerwidth": "markerWidth",
920++ "maskcontentunits": "maskContentUnits",
921++ "maskunits": "maskUnits",
922++ "numoctaves": "numOctaves",
923++ "pathlength": "pathLength",
924++ "patterncontentunits": "patternContentUnits",
925++ "patterntransform": "patternTransform",
926++ "patternunits": "patternUnits",
927++ "pointsatx": "pointsAtX",
928++ "pointsaty": "pointsAtY",
929++ "pointsatz": "pointsAtZ",
930++ "preservealpha": "preserveAlpha",
931++ "preserveaspectratio": "preserveAspectRatio",
932++ "primitiveunits": "primitiveUnits",
933++ "refx": "refX",
934++ "refy": "refY",
935++ "repeatcount": "repeatCount",
936++ "repeatdur": "repeatDur",
937++ "requiredextensions": "requiredExtensions",
938++ "requiredfeatures": "requiredFeatures",
939++ "specularconstant": "specularConstant",
940++ "specularexponent": "specularExponent",
941++ "spreadmethod": "spreadMethod",
942++ "startoffset": "startOffset",
943++ "stddeviation": "stdDeviation",
944++ "stitchtiles": "stitchTiles",
945++ "surfacescale": "surfaceScale",
946++ "systemlanguage": "systemLanguage",
947++ "tablevalues": "tableValues",
948++ "targetx": "targetX",
949++ "targety": "targetY",
950++ "textlength": "textLength",
951++ "viewbox": "viewBox",
952++ "viewtarget": "viewTarget",
953++ "xchannelselector": "xChannelSelector",
954++ "ychannelselector": "yChannelSelector",
955++ "zoomandpan": "zoomAndPan",
956+ }
957+diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go
958+index 46879c0..b46d81c 100644
959+--- a/vendor/golang.org/x/net/html/render.go
960++++ b/vendor/golang.org/x/net/html/render.go
961+@@ -263,7 +263,7 @@ var voidElements = map[string]bool{
962+ "hr": true,
963+ "img": true,
964+ "input": true,
965+- "keygen": true,
966++ "keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility.
967+ "link": true,
968+ "meta": true,
969+ "param": true,
970+diff --git a/vendor/golang.org/x/net/http2/client_conn_pool.go b/vendor/golang.org/x/net/http2/client_conn_pool.go
971+index f4d9b5e..3a67636 100644
972+--- a/vendor/golang.org/x/net/http2/client_conn_pool.go
973++++ b/vendor/golang.org/x/net/http2/client_conn_pool.go
974+@@ -107,6 +107,7 @@ func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMis
975+
976+ // dialCall is an in-flight Transport dial call to a host.
977+ type dialCall struct {
978++ _ incomparable
979+ p *clientConnPool
980+ done chan struct{} // closed when done
981+ res *ClientConn // valid after done is closed
982+@@ -180,6 +181,7 @@ func (p *clientConnPool) addConnIfNeeded(key string, t *Transport, c *tls.Conn)
983+ }
984+
985+ type addConnCall struct {
986++ _ incomparable
987+ p *clientConnPool
988+ done chan struct{} // closed when done
989+ err error
990+@@ -200,12 +202,6 @@ func (c *addConnCall) run(t *Transport, key string, tc *tls.Conn) {
991+ close(c.done)
992+ }
993+
994+-func (p *clientConnPool) addConn(key string, cc *ClientConn) {
995+- p.mu.Lock()
996+- p.addConnLocked(key, cc)
997+- p.mu.Unlock()
998+-}
999+-
1000+ // p.mu must be held
1001+ func (p *clientConnPool) addConnLocked(key string, cc *ClientConn) {
1002+ for _, v := range p.conns[key] {
1003+diff --git a/vendor/golang.org/x/net/http2/flow.go b/vendor/golang.org/x/net/http2/flow.go
1004+index cea601f..b51f0e0 100644
1005+--- a/vendor/golang.org/x/net/http2/flow.go
1006++++ b/vendor/golang.org/x/net/http2/flow.go
1007+@@ -8,6 +8,8 @@ package http2
1008+
1009+ // flow is the flow control window's size.
1010+ type flow struct {
1011++ _ incomparable
1012++
1013+ // n is the number of DATA bytes we're allowed to send.
1014+ // A flow is kept both on a conn and a per-stream.
1015+ n int32
1016+diff --git a/vendor/golang.org/x/net/http2/hpack/huffman.go b/vendor/golang.org/x/net/http2/hpack/huffman.go
1017+index b412a96..a1ab2f0 100644
1018+--- a/vendor/golang.org/x/net/http2/hpack/huffman.go
1019++++ b/vendor/golang.org/x/net/http2/hpack/huffman.go
1020+@@ -105,7 +105,14 @@ func huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error {
1021+ return nil
1022+ }
1023+
1024++// incomparable is a zero-width, non-comparable type. Adding it to a struct
1025++// makes that struct also non-comparable, and generally doesn't add
1026++// any size (as long as it's first).
1027++type incomparable [0]func()
1028++
1029+ type node struct {
1030++ _ incomparable
1031++
1032+ // children is non-nil for internal nodes
1033+ children *[256]*node
1034+
1035+diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go
1036+index 27cc893..5571ccf 100644
1037+--- a/vendor/golang.org/x/net/http2/http2.go
1038++++ b/vendor/golang.org/x/net/http2/http2.go
1039+@@ -241,6 +241,7 @@ func (cw closeWaiter) Wait() {
1040+ // Its buffered writer is lazily allocated as needed, to minimize
1041+ // idle memory usage with many connections.
1042+ type bufferedWriter struct {
1043++ _ incomparable
1044+ w io.Writer // immutable
1045+ bw *bufio.Writer // non-nil when data is buffered
1046+ }
1047+@@ -313,6 +314,7 @@ func bodyAllowedForStatus(status int) bool {
1048+ }
1049+
1050+ type httpError struct {
1051++ _ incomparable
1052+ msg string
1053+ timeout bool
1054+ }
1055+@@ -376,3 +378,8 @@ func (s *sorter) SortStrings(ss []string) {
1056+ func validPseudoPath(v string) bool {
1057+ return (len(v) > 0 && v[0] == '/') || v == "*"
1058+ }
1059++
1060++// incomparable is a zero-width, non-comparable type. Adding it to a struct
1061++// makes that struct also non-comparable, and generally doesn't add
1062++// any size (as long as it's first).
1063++type incomparable [0]func()
1064+diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go
1065+index bc9e41a..2aa859f 100644
1066+--- a/vendor/golang.org/x/net/http2/server.go
1067++++ b/vendor/golang.org/x/net/http2/server.go
1068+@@ -761,6 +761,7 @@ func (sc *serverConn) readFrames() {
1069+
1070+ // frameWriteResult is the message passed from writeFrameAsync to the serve goroutine.
1071+ type frameWriteResult struct {
1072++ _ incomparable
1073+ wr FrameWriteRequest // what was written (or attempted)
1074+ err error // result of the writeFrame call
1075+ }
1076+@@ -771,7 +772,7 @@ type frameWriteResult struct {
1077+ // serverConn.
1078+ func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest) {
1079+ err := wr.write.writeFrame(sc)
1080+- sc.wroteFrameCh <- frameWriteResult{wr, err}
1081++ sc.wroteFrameCh <- frameWriteResult{wr: wr, err: err}
1082+ }
1083+
1084+ func (sc *serverConn) closeAllStreamsOnConnClose() {
1085+@@ -1161,7 +1162,7 @@ func (sc *serverConn) startFrameWrite(wr FrameWriteRequest) {
1086+ if wr.write.staysWithinBuffer(sc.bw.Available()) {
1087+ sc.writingFrameAsync = false
1088+ err := wr.write.writeFrame(sc)
1089+- sc.wroteFrame(frameWriteResult{wr, err})
1090++ sc.wroteFrame(frameWriteResult{wr: wr, err: err})
1091+ } else {
1092+ sc.writingFrameAsync = true
1093+ go sc.writeFrameAsync(wr)
1094+@@ -1693,6 +1694,7 @@ func (sc *serverConn) processData(f *DataFrame) error {
1095+ if len(data) > 0 {
1096+ wrote, err := st.body.Write(data)
1097+ if err != nil {
1098++ sc.sendWindowUpdate(nil, int(f.Length)-wrote)
1099+ return streamError(id, ErrCodeStreamClosed)
1100+ }
1101+ if wrote != len(data) {
1102+@@ -2019,7 +2021,11 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res
1103+ }
1104+ if bodyOpen {
1105+ if vv, ok := rp.header["Content-Length"]; ok {
1106+- req.ContentLength, _ = strconv.ParseInt(vv[0], 10, 64)
1107++ if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil {
1108++ req.ContentLength = int64(cl)
1109++ } else {
1110++ req.ContentLength = 0
1111++ }
1112+ } else {
1113+ req.ContentLength = -1
1114+ }
1115+@@ -2057,7 +2063,7 @@ func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*r
1116+ var trailer http.Header
1117+ for _, v := range rp.header["Trailer"] {
1118+ for _, key := range strings.Split(v, ",") {
1119+- key = http.CanonicalHeaderKey(strings.TrimSpace(key))
1120++ key = http.CanonicalHeaderKey(textproto.TrimString(key))
1121+ switch key {
1122+ case "Transfer-Encoding", "Trailer", "Content-Length":
1123+ // Bogus. (copy of http1 rules)
1124+@@ -2275,6 +2281,7 @@ func (sc *serverConn) sendWindowUpdate32(st *stream, n int32) {
1125+ // requestBody is the Handler's Request.Body type.
1126+ // Read and Close may be called concurrently.
1127+ type requestBody struct {
1128++ _ incomparable
1129+ stream *stream
1130+ conn *serverConn
1131+ closed bool // for use by Close only
1132+@@ -2401,9 +2408,8 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) {
1133+ var ctype, clen string
1134+ if clen = rws.snapHeader.Get("Content-Length"); clen != "" {
1135+ rws.snapHeader.Del("Content-Length")
1136+- clen64, err := strconv.ParseInt(clen, 10, 64)
1137+- if err == nil && clen64 >= 0 {
1138+- rws.sentContentLen = clen64
1139++ if cl, err := strconv.ParseUint(clen, 10, 63); err == nil {
1140++ rws.sentContentLen = int64(cl)
1141+ } else {
1142+ clen = ""
1143+ }
1144+diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go
1145+index 81778be..4182f52 100644
1146+--- a/vendor/golang.org/x/net/http2/transport.go
1147++++ b/vendor/golang.org/x/net/http2/transport.go
1148+@@ -108,6 +108,19 @@ type Transport struct {
1149+ // waiting for their turn.
1150+ StrictMaxConcurrentStreams bool
1151+
1152++ // ReadIdleTimeout is the timeout after which a health check using ping
1153++ // frame will be carried out if no frame is received on the connection.
1154++ // Note that a ping response will is considered a received frame, so if
1155++ // there is no other traffic on the connection, the health check will
1156++ // be performed every ReadIdleTimeout interval.
1157++ // If zero, no health check is performed.
1158++ ReadIdleTimeout time.Duration
1159++
1160++ // PingTimeout is the timeout after which the connection will be closed
1161++ // if a response to Ping is not received.
1162++ // Defaults to 15s.
1163++ PingTimeout time.Duration
1164++
1165+ // t1, if non-nil, is the standard library Transport using
1166+ // this transport. Its settings are used (but not its
1167+ // RoundTrip method, etc).
1168+@@ -131,6 +144,14 @@ func (t *Transport) disableCompression() bool {
1169+ return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression)
1170+ }
1171+
1172++func (t *Transport) pingTimeout() time.Duration {
1173++ if t.PingTimeout == 0 {
1174++ return 15 * time.Second
1175++ }
1176++ return t.PingTimeout
1177++
1178++}
1179++
1180+ // ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2.
1181+ // It returns an error if t1 has already been HTTP/2-enabled.
1182+ func ConfigureTransport(t1 *http.Transport) error {
1183+@@ -668,6 +689,7 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro
1184+ cc.inflow.add(transportDefaultConnFlow + initialWindowSize)
1185+ cc.bw.Flush()
1186+ if cc.werr != nil {
1187++ cc.Close()
1188+ return nil, cc.werr
1189+ }
1190+
1191+@@ -675,6 +697,20 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro
1192+ return cc, nil
1193+ }
1194+
1195++func (cc *ClientConn) healthCheck() {
1196++ pingTimeout := cc.t.pingTimeout()
1197++ // We don't need to periodically ping in the health check, because the readLoop of ClientConn will
1198++ // trigger the healthCheck again if there is no frame received.
1199++ ctx, cancel := context.WithTimeout(context.Background(), pingTimeout)
1200++ defer cancel()
1201++ err := cc.Ping(ctx)
1202++ if err != nil {
1203++ cc.closeForLostPing()
1204++ cc.t.connPool().MarkDead(cc)
1205++ return
1206++ }
1207++}
1208++
1209+ func (cc *ClientConn) setGoAway(f *GoAwayFrame) {
1210+ cc.mu.Lock()
1211+ defer cc.mu.Unlock()
1212+@@ -846,14 +882,12 @@ func (cc *ClientConn) sendGoAway() error {
1213+ return nil
1214+ }
1215+
1216+-// Close closes the client connection immediately.
1217+-//
1218+-// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.
1219+-func (cc *ClientConn) Close() error {
1220++// closes the client connection immediately. In-flight requests are interrupted.
1221++// err is sent to streams.
1222++func (cc *ClientConn) closeForError(err error) error {
1223+ cc.mu.Lock()
1224+ defer cc.cond.Broadcast()
1225+ defer cc.mu.Unlock()
1226+- err := errors.New("http2: client connection force closed via ClientConn.Close")
1227+ for id, cs := range cc.streams {
1228+ select {
1229+ case cs.resc <- resAndError{err: err}:
1230+@@ -866,6 +900,20 @@ func (cc *ClientConn) Close() error {
1231+ return cc.tconn.Close()
1232+ }
1233+
1234++// Close closes the client connection immediately.
1235++//
1236++// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.
1237++func (cc *ClientConn) Close() error {
1238++ err := errors.New("http2: client connection force closed via ClientConn.Close")
1239++ return cc.closeForError(err)
1240++}
1241++
1242++// closes the client connection immediately. In-flight requests are interrupted.
1243++func (cc *ClientConn) closeForLostPing() error {
1244++ err := errors.New("http2: client connection lost")
1245++ return cc.closeForError(err)
1246++}
1247++
1248+ const maxAllocFrameSize = 512 << 10
1249+
1250+ // frameBuffer returns a scratch buffer suitable for writing DATA frames.
1251+@@ -916,7 +964,7 @@ func commaSeparatedTrailers(req *http.Request) (string, error) {
1252+ k = http.CanonicalHeaderKey(k)
1253+ switch k {
1254+ case "Transfer-Encoding", "Trailer", "Content-Length":
1255+- return "", &badStringError{"invalid Trailer key", k}
1256++ return "", fmt.Errorf("invalid Trailer key %q", k)
1257+ }
1258+ keys = append(keys, k)
1259+ }
1260+@@ -1033,6 +1081,15 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
1261+ bodyWriter := cc.t.getBodyWriterState(cs, body)
1262+ cs.on100 = bodyWriter.on100
1263+
1264++ defer func() {
1265++ cc.wmu.Lock()
1266++ werr := cc.werr
1267++ cc.wmu.Unlock()
1268++ if werr != nil {
1269++ cc.Close()
1270++ }
1271++ }()
1272++
1273+ cc.wmu.Lock()
1274+ endStream := !hasBody && !hasTrailers
1275+ werr := cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs)
1276+@@ -1394,13 +1451,6 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error)
1277+ }
1278+ }
1279+
1280+-type badStringError struct {
1281+- what string
1282+- str string
1283+-}
1284+-
1285+-func (e *badStringError) Error() string { return fmt.Sprintf("%s %q", e.what, e.str) }
1286+-
1287+ // requires cc.mu be held.
1288+ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) {
1289+ cc.hbuf.Reset()
1290+@@ -1616,6 +1666,7 @@ func (cc *ClientConn) writeHeader(name, value string) {
1291+ }
1292+
1293+ type resAndError struct {
1294++ _ incomparable
1295+ res *http.Response
1296+ err error
1297+ }
1298+@@ -1663,6 +1714,7 @@ func (cc *ClientConn) streamByID(id uint32, andRemove bool) *clientStream {
1299+
1300+ // clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop.
1301+ type clientConnReadLoop struct {
1302++ _ incomparable
1303+ cc *ClientConn
1304+ closeWhenIdle bool
1305+ }
1306+@@ -1742,8 +1794,17 @@ func (rl *clientConnReadLoop) run() error {
1307+ rl.closeWhenIdle = cc.t.disableKeepAlives() || cc.singleUse
1308+ gotReply := false // ever saw a HEADERS reply
1309+ gotSettings := false
1310++ readIdleTimeout := cc.t.ReadIdleTimeout
1311++ var t *time.Timer
1312++ if readIdleTimeout != 0 {
1313++ t = time.AfterFunc(readIdleTimeout, cc.healthCheck)
1314++ defer t.Stop()
1315++ }
1316+ for {
1317+ f, err := cc.fr.ReadFrame()
1318++ if t != nil {
1319++ t.Reset(readIdleTimeout)
1320++ }
1321+ if err != nil {
1322+ cc.vlogf("http2: Transport readFrame error on conn %p: (%T) %v", cc, err, err)
1323+ }
1324+@@ -1892,7 +1953,9 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
1325+ return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header")
1326+ }
1327+
1328+- header := make(http.Header)
1329++ regularFields := f.RegularFields()
1330++ strs := make([]string, len(regularFields))
1331++ header := make(http.Header, len(regularFields))
1332+ res := &http.Response{
1333+ Proto: "HTTP/2.0",
1334+ ProtoMajor: 2,
1335+@@ -1900,7 +1963,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
1336+ StatusCode: statusCode,
1337+ Status: status + " " + http.StatusText(statusCode),
1338+ }
1339+- for _, hf := range f.RegularFields() {
1340++ for _, hf := range regularFields {
1341+ key := http.CanonicalHeaderKey(hf.Name)
1342+ if key == "Trailer" {
1343+ t := res.Trailer
1344+@@ -1912,7 +1975,18 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
1345+ t[http.CanonicalHeaderKey(v)] = nil
1346+ })
1347+ } else {
1348+- header[key] = append(header[key], hf.Value)
1349++ vv := header[key]
1350++ if vv == nil && len(strs) > 0 {
1351++ // More than likely this will be a single-element key.
1352++ // Most headers aren't multi-valued.
1353++ // Set the capacity on strs[0] to 1, so any future append
1354++ // won't extend the slice into the other strings.
1355++ vv, strs = strs[:1:1], strs[1:]
1356++ vv[0] = hf.Value
1357++ header[key] = vv
1358++ } else {
1359++ header[key] = append(vv, hf.Value)
1360++ }
1361+ }
1362+ }
1363+
1364+@@ -1942,8 +2016,8 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
1365+ if !streamEnded || isHead {
1366+ res.ContentLength = -1
1367+ if clens := res.Header["Content-Length"]; len(clens) == 1 {
1368+- if clen64, err := strconv.ParseInt(clens[0], 10, 64); err == nil {
1369+- res.ContentLength = clen64
1370++ if cl, err := strconv.ParseUint(clens[0], 10, 63); err == nil {
1371++ res.ContentLength = int64(cl)
1372+ } else {
1373+ // TODO: care? unlike http/1, it won't mess up our framing, so it's
1374+ // more safe smuggling-wise to ignore.
1375+@@ -2461,11 +2535,13 @@ func strSliceContains(ss []string, s string) bool {
1376+
1377+ type erringRoundTripper struct{ err error }
1378+
1379++func (rt erringRoundTripper) RoundTripErr() error { return rt.err }
1380+ func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err }
1381+
1382+ // gzipReader wraps a response body so it can lazily
1383+ // call gzip.NewReader on the first call to Read
1384+ type gzipReader struct {
1385++ _ incomparable
1386+ body io.ReadCloser // underlying Response.Body
1387+ zr *gzip.Reader // lazily-initialized gzip reader
1388+ zerr error // sticky error
1389+diff --git a/vendor/golang.org/x/net/icmp/endpoint.go b/vendor/golang.org/x/net/icmp/endpoint.go
1390+index 4841bdd..47f5b69 100644
1391+--- a/vendor/golang.org/x/net/icmp/endpoint.go
1392++++ b/vendor/golang.org/x/net/icmp/endpoint.go
1393+@@ -51,7 +51,7 @@ func (c *PacketConn) ReadFrom(b []byte) (int, net.Addr, error) {
1394+ // Please be informed that ipv4.NewPacketConn enables
1395+ // IP_STRIPHDR option by default on Darwin.
1396+ // See golang.org/issue/9395 for further information.
1397+- if runtime.GOOS == "darwin" && c.p4 != nil {
1398++ if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && c.p4 != nil {
1399+ n, _, peer, err := c.p4.ReadFrom(b)
1400+ return n, peer, err
1401+ }
1402+diff --git a/vendor/golang.org/x/net/icmp/interface.go b/vendor/golang.org/x/net/icmp/interface.go
1403+index ae14818..b3dd72f 100644
1404+--- a/vendor/golang.org/x/net/icmp/interface.go
1405++++ b/vendor/golang.org/x/net/icmp/interface.go
1406+@@ -300,7 +300,7 @@ func parseInterfaceIdent(b []byte) (Extension, error) {
1407+ }
1408+ switch ifi.Type {
1409+ case typeInterfaceByName:
1410+- ifi.Name = strings.Trim(string(b[4:]), string(0))
1411++ ifi.Name = strings.Trim(string(b[4:]), "\x00")
1412+ case typeInterfaceByIndex:
1413+ if len(b[4:]) < 4 {
1414+ return nil, errInvalidExtension
1415+diff --git a/vendor/golang.org/x/net/icmp/ipv4.go b/vendor/golang.org/x/net/icmp/ipv4.go
1416+index c462924..0ad40fe 100644
1417+--- a/vendor/golang.org/x/net/icmp/ipv4.go
1418++++ b/vendor/golang.org/x/net/icmp/ipv4.go
1419+@@ -48,7 +48,7 @@ func ParseIPv4Header(b []byte) (*ipv4.Header, error) {
1420+ Dst: net.IPv4(b[16], b[17], b[18], b[19]),
1421+ }
1422+ switch runtime.GOOS {
1423+- case "darwin":
1424++ case "darwin", "ios":
1425+ h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4]))
1426+ case "freebsd":
1427+ if freebsdVersion >= 1000000 {
1428+diff --git a/vendor/golang.org/x/net/icmp/listen_posix.go b/vendor/golang.org/x/net/icmp/listen_posix.go
1429+index f0f1f2f..327abf8 100644
1430+--- a/vendor/golang.org/x/net/icmp/listen_posix.go
1431++++ b/vendor/golang.org/x/net/icmp/listen_posix.go
1432+@@ -68,7 +68,7 @@ func ListenPacket(network, address string) (*PacketConn, error) {
1433+ if err != nil {
1434+ return nil, os.NewSyscallError("socket", err)
1435+ }
1436+- if runtime.GOOS == "darwin" && family == syscall.AF_INET {
1437++ if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && family == syscall.AF_INET {
1438+ if err := syscall.SetsockoptInt(s, iana.ProtocolIP, sysIP_STRIPHDR, 1); err != nil {
1439+ syscall.Close(s)
1440+ return nil, os.NewSyscallError("setsockopt", err)
1441+diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go
1442+index e581011..8328b7d 100644
1443+--- a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go
1444++++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go
1445+@@ -6,9 +6,19 @@
1446+
1447+ package socket
1448+
1449+-type cmsghdr struct{}
1450++func controlHeaderLen() int {
1451++ return 0
1452++}
1453++
1454++func controlMessageLen(dataLen int) int {
1455++ return 0
1456++}
1457+
1458+-const sizeofCmsghdr = 0
1459++func controlMessageSpace(dataLen int) int {
1460++ return 0
1461++}
1462++
1463++type cmsghdr struct{}
1464+
1465+ func (h *cmsghdr) len() int { return 0 }
1466+ func (h *cmsghdr) lvl() int { return 0 }
1467+diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go
1468+new file mode 100644
1469+index 0000000..c2b2b65
1470+--- /dev/null
1471++++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go
1472+@@ -0,0 +1,21 @@
1473++// Copyright 2020 The Go Authors. All rights reserved.
1474++// Use of this source code is governed by a BSD-style
1475++// license that can be found in the LICENSE file.
1476++
1477++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
1478++
1479++package socket
1480++
1481++import "golang.org/x/sys/unix"
1482++
1483++func controlHeaderLen() int {
1484++ return unix.CmsgLen(0)
1485++}
1486++
1487++func controlMessageLen(dataLen int) int {
1488++ return unix.CmsgLen(dataLen)
1489++}
1490++
1491++func controlMessageSpace(dataLen int) int {
1492++ return unix.CmsgSpace(dataLen)
1493++}
1494+diff --git a/vendor/golang.org/x/net/internal/socket/socket.go b/vendor/golang.org/x/net/internal/socket/socket.go
1495+index 23571b8..dba47bf 100644
1496+--- a/vendor/golang.org/x/net/internal/socket/socket.go
1497++++ b/vendor/golang.org/x/net/internal/socket/socket.go
1498+@@ -90,17 +90,9 @@ func (o *Option) SetInt(c *Conn, v int) error {
1499+ return o.set(c, b)
1500+ }
1501+
1502+-func controlHeaderLen() int {
1503+- return roundup(sizeofCmsghdr)
1504+-}
1505+-
1506+-func controlMessageLen(dataLen int) int {
1507+- return roundup(sizeofCmsghdr) + dataLen
1508+-}
1509+-
1510+ // ControlMessageSpace returns the whole length of control message.
1511+ func ControlMessageSpace(dataLen int) int {
1512+- return roundup(sizeofCmsghdr) + roundup(dataLen)
1513++ return controlMessageSpace(dataLen)
1514+ }
1515+
1516+ // A ControlMessage represents the head message in a stream of control
1517+diff --git a/vendor/golang.org/x/net/internal/socket/sys.go b/vendor/golang.org/x/net/internal/socket/sys.go
1518+index ee492ba..4a26af1 100644
1519+--- a/vendor/golang.org/x/net/internal/socket/sys.go
1520++++ b/vendor/golang.org/x/net/internal/socket/sys.go
1521+@@ -9,13 +9,8 @@ import (
1522+ "unsafe"
1523+ )
1524+
1525+-var (
1526+- // NativeEndian is the machine native endian implementation of
1527+- // ByteOrder.
1528+- NativeEndian binary.ByteOrder
1529+-
1530+- kernelAlign int
1531+-)
1532++// NativeEndian is the machine native endian implementation of ByteOrder.
1533++var NativeEndian binary.ByteOrder
1534+
1535+ func init() {
1536+ i := uint32(1)
1537+@@ -25,9 +20,4 @@ func init() {
1538+ } else {
1539+ NativeEndian = binary.BigEndian
1540+ }
1541+- kernelAlign = probeProtocolStack()
1542+-}
1543+-
1544+-func roundup(l int) int {
1545+- return (l + kernelAlign - 1) &^ (kernelAlign - 1)
1546+ }
1547+diff --git a/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go b/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go
1548+deleted file mode 100644
1549+index b4f41b5..0000000
1550+--- a/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go
1551++++ /dev/null
1552+@@ -1,23 +0,0 @@
1553+-// Copyright 2017 The Go Authors. All rights reserved.
1554+-// Use of this source code is governed by a BSD-style
1555+-// license that can be found in the LICENSE file.
1556+-
1557+-// +build aix freebsd netbsd openbsd
1558+-
1559+-package socket
1560+-
1561+-import (
1562+- "runtime"
1563+- "unsafe"
1564+-)
1565+-
1566+-func probeProtocolStack() int {
1567+- if (runtime.GOOS == "netbsd" || runtime.GOOS == "openbsd") && runtime.GOARCH == "arm" {
1568+- return 8
1569+- }
1570+- if runtime.GOOS == "aix" {
1571+- return 1
1572+- }
1573+- var p uintptr
1574+- return int(unsafe.Sizeof(p))
1575+-}
1576+diff --git a/vendor/golang.org/x/net/internal/socket/sys_darwin.go b/vendor/golang.org/x/net/internal/socket/sys_darwin.go
1577+deleted file mode 100644
1578+index b17d223..0000000
1579+--- a/vendor/golang.org/x/net/internal/socket/sys_darwin.go
1580++++ /dev/null
1581+@@ -1,7 +0,0 @@
1582+-// Copyright 2017 The Go Authors. All rights reserved.
1583+-// Use of this source code is governed by a BSD-style
1584+-// license that can be found in the LICENSE file.
1585+-
1586+-package socket
1587+-
1588+-func probeProtocolStack() int { return 4 }
1589+diff --git a/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go b/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go
1590+deleted file mode 100644
1591+index ed0448f..0000000
1592+--- a/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go
1593++++ /dev/null
1594+@@ -1,32 +0,0 @@
1595+-// Copyright 2017 The Go Authors. All rights reserved.
1596+-// Use of this source code is governed by a BSD-style
1597+-// license that can be found in the LICENSE file.
1598+-
1599+-package socket
1600+-
1601+-import (
1602+- "sync"
1603+- "syscall"
1604+- "unsafe"
1605+-)
1606+-
1607+-// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h
1608+-var (
1609+- osreldateOnce sync.Once
1610+- osreldate uint32
1611+-)
1612+-
1613+-// First __DragonFly_version after September 2019 ABI changes
1614+-// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html
1615+-const _dragonflyABIChangeVersion = 500705
1616+-
1617+-func probeProtocolStack() int {
1618+- osreldateOnce.Do(func() { osreldate, _ = syscall.SysctlUint32("kern.osreldate") })
1619+- var p uintptr
1620+- if int(unsafe.Sizeof(p)) == 8 && osreldate >= _dragonflyABIChangeVersion {
1621+- return int(unsafe.Sizeof(p))
1622+- }
1623+- // 64-bit Dragonfly before the September 2019 ABI changes still requires
1624+- // 32-bit aligned access to network subsystem.
1625+- return 4
1626+-}
1627+diff --git a/vendor/golang.org/x/net/internal/socket/sys_go1_11_darwin.go b/vendor/golang.org/x/net/internal/socket/sys_go1_11_darwin.go
1628+deleted file mode 100644
1629+index 02d2b3c..0000000
1630+--- a/vendor/golang.org/x/net/internal/socket/sys_go1_11_darwin.go
1631++++ /dev/null
1632+@@ -1,33 +0,0 @@
1633+-// Copyright 2018 The Go Authors. All rights reserved.
1634+-// Use of this source code is governed by a BSD-style
1635+-// license that can be found in the LICENSE file.
1636+-
1637+-// +build !go1.12
1638+-
1639+-package socket
1640+-
1641+-import (
1642+- "syscall"
1643+- "unsafe"
1644+-)
1645+-
1646+-func getsockopt(s uintptr, level, name int, b []byte) (int, error) {
1647+- l := uint32(len(b))
1648+- _, _, errno := syscall.Syscall6(syscall.SYS_GETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(unsafe.Pointer(&l)), 0)
1649+- return int(l), errnoErr(errno)
1650+-}
1651+-
1652+-func setsockopt(s uintptr, level, name int, b []byte) error {
1653+- _, _, errno := syscall.Syscall6(syscall.SYS_SETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)), 0)
1654+- return errnoErr(errno)
1655+-}
1656+-
1657+-func recvmsg(s uintptr, h *msghdr, flags int) (int, error) {
1658+- n, _, errno := syscall.Syscall(syscall.SYS_RECVMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags))
1659+- return int(n), errnoErr(errno)
1660+-}
1661+-
1662+-func sendmsg(s uintptr, h *msghdr, flags int) (int, error) {
1663+- n, _, errno := syscall.Syscall(syscall.SYS_SENDMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags))
1664+- return int(n), errnoErr(errno)
1665+-}
1666+diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux.go b/vendor/golang.org/x/net/internal/socket/sys_linux.go
1667+index 1559521..8b03cd6 100644
1668+--- a/vendor/golang.org/x/net/internal/socket/sys_linux.go
1669++++ b/vendor/golang.org/x/net/internal/socket/sys_linux.go
1670+@@ -11,11 +11,6 @@ import (
1671+ "unsafe"
1672+ )
1673+
1674+-func probeProtocolStack() int {
1675+- var p uintptr
1676+- return int(unsafe.Sizeof(p))
1677+-}
1678+-
1679+ func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) {
1680+ n, _, errno := syscall.Syscall6(sysRECVMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0)
1681+ return int(n), errnoErr(errno)
1682+diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_386.go b/vendor/golang.org/x/net/internal/socket/sys_linux_386.go
1683+index 235b2cc..6512153 100644
1684+--- a/vendor/golang.org/x/net/internal/socket/sys_linux_386.go
1685++++ b/vendor/golang.org/x/net/internal/socket/sys_linux_386.go
1686+@@ -9,8 +9,6 @@ import (
1687+ "unsafe"
1688+ )
1689+
1690+-func probeProtocolStack() int { return 4 }
1691+-
1692+ const (
1693+ sysSETSOCKOPT = 0xe
1694+ sysGETSOCKOPT = 0xf
1695+diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go b/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go
1696+index 327979e..6512153 100644
1697+--- a/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go
1698++++ b/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go
1699+@@ -9,8 +9,6 @@ import (
1700+ "unsafe"
1701+ )
1702+
1703+-func probeProtocolStack() int { return 8 }
1704+-
1705+ const (
1706+ sysSETSOCKOPT = 0xe
1707+ sysGETSOCKOPT = 0xf
1708+diff --git a/vendor/golang.org/x/net/internal/socket/sys_solaris.go b/vendor/golang.org/x/net/internal/socket/sys_solaris.go
1709+index 66b5547..e79ca95 100644
1710+--- a/vendor/golang.org/x/net/internal/socket/sys_solaris.go
1711++++ b/vendor/golang.org/x/net/internal/socket/sys_solaris.go
1712+@@ -5,21 +5,10 @@
1713+ package socket
1714+
1715+ import (
1716+- "runtime"
1717+ "syscall"
1718+ "unsafe"
1719+ )
1720+
1721+-func probeProtocolStack() int {
1722+- switch runtime.GOARCH {
1723+- case "amd64":
1724+- return 4
1725+- default:
1726+- var p uintptr
1727+- return int(unsafe.Sizeof(p))
1728+- }
1729+-}
1730+-
1731+ //go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so"
1732+ //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so"
1733+ //go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so"
1734+diff --git a/vendor/golang.org/x/net/internal/socket/sys_stub.go b/vendor/golang.org/x/net/internal/socket/sys_stub.go
1735+index 0f61742..8e1e074 100644
1736+--- a/vendor/golang.org/x/net/internal/socket/sys_stub.go
1737++++ b/vendor/golang.org/x/net/internal/socket/sys_stub.go
1738+@@ -6,11 +6,7 @@
1739+
1740+ package socket
1741+
1742+-import (
1743+- "net"
1744+- "runtime"
1745+- "unsafe"
1746+-)
1747++import "net"
1748+
1749+ const (
1750+ sysAF_UNSPEC = 0x0
1751+@@ -20,16 +16,6 @@ const (
1752+ sysSOCK_RAW = 0x3
1753+ )
1754+
1755+-func probeProtocolStack() int {
1756+- switch runtime.GOARCH {
1757+- case "amd64p32", "mips64p32":
1758+- return 4
1759+- default:
1760+- var p uintptr
1761+- return int(unsafe.Sizeof(p))
1762+- }
1763+-}
1764+-
1765+ func marshalInetAddr(ip net.IP, port int, zone string) []byte {
1766+ return nil
1767+ }
1768+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go
1769+index e740c8f..93d923a 100644
1770+--- a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go
1771++++ b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go
1772+@@ -51,9 +51,8 @@ type sockaddrInet6 struct {
1773+ }
1774+
1775+ const (
1776+- sizeofIovec = 0x10
1777+- sizeofMsghdr = 0x30
1778+- sizeofCmsghdr = 0xc
1779++ sizeofIovec = 0x10
1780++ sizeofMsghdr = 0x30
1781+
1782+ sizeofSockaddrInet = 0x10
1783+ sizeofSockaddrInet6 = 0x1c
1784+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go b/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go
1785+index 083bda5..150f980 100644
1786+--- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go
1787++++ b/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go
1788+@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
1789+ }
1790+
1791+ const (
1792+- sizeofIovec = 0x8
1793+- sizeofMsghdr = 0x1c
1794+- sizeofCmsghdr = 0xc
1795++ sizeofIovec = 0x8
1796++ sizeofMsghdr = 0x1c
1797+
1798+ sizeofSockaddrInet = 0x10
1799+ sizeofSockaddrInet6 = 0x1c
1800+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go
1801+index 55c6c9f..a686c95 100644
1802+--- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go
1803++++ b/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go
1804+@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
1805+ }
1806+
1807+ const (
1808+- sizeofIovec = 0x10
1809+- sizeofMsghdr = 0x30
1810+- sizeofCmsghdr = 0xc
1811++ sizeofIovec = 0x10
1812++ sizeofMsghdr = 0x30
1813+
1814+ sizeofSockaddrInet = 0x10
1815+ sizeofSockaddrInet6 = 0x1c
1816+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go
1817+index 083bda5..150f980 100644
1818+--- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go
1819++++ b/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go
1820+@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
1821+ }
1822+
1823+ const (
1824+- sizeofIovec = 0x8
1825+- sizeofMsghdr = 0x1c
1826+- sizeofCmsghdr = 0xc
1827++ sizeofIovec = 0x8
1828++ sizeofMsghdr = 0x1c
1829+
1830+ sizeofSockaddrInet = 0x10
1831+ sizeofSockaddrInet6 = 0x1c
1832+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go
1833+index 55c6c9f..a686c95 100644
1834+--- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go
1835++++ b/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go
1836+@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
1837+ }
1838+
1839+ const (
1840+- sizeofIovec = 0x10
1841+- sizeofMsghdr = 0x30
1842+- sizeofCmsghdr = 0xc
1843++ sizeofIovec = 0x10
1844++ sizeofMsghdr = 0x30
1845+
1846+ sizeofSockaddrInet = 0x10
1847+ sizeofSockaddrInet6 = 0x1c
1848+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go
1849+index 8b7d161..d45c197 100644
1850+--- a/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go
1851++++ b/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go
1852+@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
1853+ }
1854+
1855+ const (
1856+- sizeofIovec = 0x10
1857+- sizeofMsghdr = 0x30
1858+- sizeofCmsghdr = 0xc
1859++ sizeofIovec = 0x10
1860++ sizeofMsghdr = 0x30
1861+
1862+ sizeofSockaddrInet = 0x10
1863+ sizeofSockaddrInet6 = 0x1c
1864+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go
1865+index 3e71ff5..ffec860 100644
1866+--- a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go
1867++++ b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go
1868+@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
1869+ }
1870+
1871+ const (
1872+- sizeofIovec = 0x8
1873+- sizeofMsghdr = 0x1c
1874+- sizeofCmsghdr = 0xc
1875++ sizeofIovec = 0x8
1876++ sizeofMsghdr = 0x1c
1877+
1878+ sizeofSockaddrInet = 0x10
1879+ sizeofSockaddrInet6 = 0x1c
1880+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go
1881+index 238d90d..aa701ab 100644
1882+--- a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go
1883++++ b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go
1884+@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
1885+ }
1886+
1887+ const (
1888+- sizeofIovec = 0x10
1889+- sizeofMsghdr = 0x30
1890+- sizeofCmsghdr = 0xc
1891++ sizeofIovec = 0x10
1892++ sizeofMsghdr = 0x30
1893+
1894+ sizeofSockaddrInet = 0x10
1895+ sizeofSockaddrInet6 = 0x1c
1896+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go
1897+index 3e71ff5..ffec860 100644
1898+--- a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go
1899++++ b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go
1900+@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
1901+ }
1902+
1903+ const (
1904+- sizeofIovec = 0x8
1905+- sizeofMsghdr = 0x1c
1906+- sizeofCmsghdr = 0xc
1907++ sizeofIovec = 0x8
1908++ sizeofMsghdr = 0x1c
1909+
1910+ sizeofSockaddrInet = 0x10
1911+ sizeofSockaddrInet6 = 0x1c
1912+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go
1913+index 238d90d..aa701ab 100644
1914+--- a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go
1915++++ b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go
1916+@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
1917+ }
1918+
1919+ const (
1920+- sizeofIovec = 0x10
1921+- sizeofMsghdr = 0x30
1922+- sizeofCmsghdr = 0xc
1923++ sizeofIovec = 0x10
1924++ sizeofMsghdr = 0x30
1925+
1926+ sizeofSockaddrInet = 0x10
1927+ sizeofSockaddrInet6 = 0x1c
1928+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go
1929+index d33025b..0c847be 100644
1930+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go
1931++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go
1932+@@ -45,9 +45,8 @@ type sockaddrInet6 struct {
1933+ }
1934+
1935+ const (
1936+- sizeofIovec = 0x8
1937+- sizeofMsghdr = 0x1c
1938+- sizeofCmsghdr = 0xc
1939++ sizeofIovec = 0x8
1940++ sizeofMsghdr = 0x1c
1941+
1942+ sizeofSockaddrInet = 0x10
1943+ sizeofSockaddrInet6 = 0x1c
1944+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go
1945+index b20d216..15e2aec 100644
1946+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go
1947++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go
1948+@@ -48,9 +48,8 @@ type sockaddrInet6 struct {
1949+ }
1950+
1951+ const (
1952+- sizeofIovec = 0x10
1953+- sizeofMsghdr = 0x38
1954+- sizeofCmsghdr = 0x10
1955++ sizeofIovec = 0x10
1956++ sizeofMsghdr = 0x38
1957+
1958+ sizeofSockaddrInet = 0x10
1959+ sizeofSockaddrInet6 = 0x1c
1960+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go
1961+index 1bb10a4..0c847be 100644
1962+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go
1963++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go
1964+@@ -48,8 +48,6 @@ const (
1965+ sizeofIovec = 0x8
1966+ sizeofMsghdr = 0x1c
1967+
1968+- sizeofCmsghdr = 0xc
1969+-
1970+ sizeofSockaddrInet = 0x10
1971+ sizeofSockaddrInet6 = 0x1c
1972+ )
1973+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go
1974+index 7f6e8a7..15e2aec 100644
1975+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go
1976++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go
1977+@@ -51,8 +51,6 @@ const (
1978+ sizeofIovec = 0x10
1979+ sizeofMsghdr = 0x38
1980+
1981+- sizeofCmsghdr = 0x10
1982+-
1983+ sizeofSockaddrInet = 0x10
1984+ sizeofSockaddrInet6 = 0x1c
1985+ )
1986+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go
1987+index 1bb10a4..0c847be 100644
1988+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go
1989++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go
1990+@@ -48,8 +48,6 @@ const (
1991+ sizeofIovec = 0x8
1992+ sizeofMsghdr = 0x1c
1993+
1994+- sizeofCmsghdr = 0xc
1995+-
1996+ sizeofSockaddrInet = 0x10
1997+ sizeofSockaddrInet6 = 0x1c
1998+ )
1999+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go
2000+index 7f6e8a7..15e2aec 100644
2001+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go
2002++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go
2003+@@ -51,8 +51,6 @@ const (
2004+ sizeofIovec = 0x10
2005+ sizeofMsghdr = 0x38
2006+
2007+- sizeofCmsghdr = 0x10
2008+-
2009+ sizeofSockaddrInet = 0x10
2010+ sizeofSockaddrInet6 = 0x1c
2011+ )
2012+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go
2013+index 7f6e8a7..15e2aec 100644
2014+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go
2015++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go
2016+@@ -51,8 +51,6 @@ const (
2017+ sizeofIovec = 0x10
2018+ sizeofMsghdr = 0x38
2019+
2020+- sizeofCmsghdr = 0x10
2021+-
2022+ sizeofSockaddrInet = 0x10
2023+ sizeofSockaddrInet6 = 0x1c
2024+ )
2025+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go
2026+index 1bb10a4..0c847be 100644
2027+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go
2028++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go
2029+@@ -48,8 +48,6 @@ const (
2030+ sizeofIovec = 0x8
2031+ sizeofMsghdr = 0x1c
2032+
2033+- sizeofCmsghdr = 0xc
2034+-
2035+ sizeofSockaddrInet = 0x10
2036+ sizeofSockaddrInet6 = 0x1c
2037+ )
2038+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go
2039+index 7f6e8a7..15e2aec 100644
2040+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go
2041++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go
2042+@@ -51,8 +51,6 @@ const (
2043+ sizeofIovec = 0x10
2044+ sizeofMsghdr = 0x38
2045+
2046+- sizeofCmsghdr = 0x10
2047+-
2048+ sizeofSockaddrInet = 0x10
2049+ sizeofSockaddrInet6 = 0x1c
2050+ )
2051+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go
2052+index 7f6e8a7..15e2aec 100644
2053+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go
2054++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go
2055+@@ -51,8 +51,6 @@ const (
2056+ sizeofIovec = 0x10
2057+ sizeofMsghdr = 0x38
2058+
2059+- sizeofCmsghdr = 0x10
2060+-
2061+ sizeofSockaddrInet = 0x10
2062+ sizeofSockaddrInet6 = 0x1c
2063+ )
2064+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go
2065+index f12a1d7..8640c03 100644
2066+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go
2067++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go
2068+@@ -52,8 +52,6 @@ const (
2069+ sizeofIovec = 0x10
2070+ sizeofMsghdr = 0x38
2071+
2072+- sizeofCmsghdr = 0x10
2073+-
2074+ sizeofSockaddrInet = 0x10
2075+ sizeofSockaddrInet6 = 0x1c
2076+ )
2077+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go
2078+index 7f6e8a7..15e2aec 100644
2079+--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go
2080++++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go
2081+@@ -51,8 +51,6 @@ const (
2082+ sizeofIovec = 0x10
2083+ sizeofMsghdr = 0x38
2084+
2085+- sizeofCmsghdr = 0x10
2086+-
2087+ sizeofSockaddrInet = 0x10
2088+ sizeofSockaddrInet6 = 0x1c
2089+ )
2090+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go
2091+index 7e258ce..6b72d24 100644
2092+--- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go
2093++++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go
2094+@@ -50,8 +50,6 @@ const (
2095+ sizeofIovec = 0x8
2096+ sizeofMsghdr = 0x1c
2097+
2098+- sizeofCmsghdr = 0xc
2099+-
2100+ sizeofSockaddrInet = 0x10
2101+ sizeofSockaddrInet6 = 0x1c
2102+ )
2103+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go
2104+index b3f9c0d..9aaa4ab 100644
2105+--- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go
2106++++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go
2107+@@ -53,8 +53,6 @@ const (
2108+ sizeofIovec = 0x10
2109+ sizeofMsghdr = 0x30
2110+
2111+- sizeofCmsghdr = 0xc
2112+-
2113+ sizeofSockaddrInet = 0x10
2114+ sizeofSockaddrInet6 = 0x1c
2115+ )
2116+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go
2117+index 7e258ce..6b72d24 100644
2118+--- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go
2119++++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go
2120+@@ -50,8 +50,6 @@ const (
2121+ sizeofIovec = 0x8
2122+ sizeofMsghdr = 0x1c
2123+
2124+- sizeofCmsghdr = 0xc
2125+-
2126+ sizeofSockaddrInet = 0x10
2127+ sizeofSockaddrInet6 = 0x1c
2128+ )
2129+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go
2130+index da26ef0..9aaa4ab 100644
2131+--- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go
2132++++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go
2133+@@ -50,9 +50,8 @@ type sockaddrInet6 struct {
2134+ }
2135+
2136+ const (
2137+- sizeofIovec = 0x10
2138+- sizeofMsghdr = 0x30
2139+- sizeofCmsghdr = 0xc
2140++ sizeofIovec = 0x10
2141++ sizeofMsghdr = 0x30
2142+
2143+ sizeofSockaddrInet = 0x10
2144+ sizeofSockaddrInet6 = 0x1c
2145+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go
2146+index 73655a1..3ec8d42 100644
2147+--- a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go
2148++++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go
2149+@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
2150+ }
2151+
2152+ const (
2153+- sizeofIovec = 0x8
2154+- sizeofMsghdr = 0x1c
2155+- sizeofCmsghdr = 0xc
2156++ sizeofIovec = 0x8
2157++ sizeofMsghdr = 0x1c
2158+
2159+ sizeofSockaddrInet = 0x10
2160+ sizeofSockaddrInet6 = 0x1c
2161+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go
2162+index 0a4de80..ea0ee00 100644
2163+--- a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go
2164++++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go
2165+@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
2166+ }
2167+
2168+ const (
2169+- sizeofIovec = 0x10
2170+- sizeofMsghdr = 0x30
2171+- sizeofCmsghdr = 0xc
2172++ sizeofIovec = 0x10
2173++ sizeofMsghdr = 0x30
2174+
2175+ sizeofSockaddrInet = 0x10
2176+ sizeofSockaddrInet6 = 0x1c
2177+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go
2178+index 73655a1..3ec8d42 100644
2179+--- a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go
2180++++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go
2181+@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
2182+ }
2183+
2184+ const (
2185+- sizeofIovec = 0x8
2186+- sizeofMsghdr = 0x1c
2187+- sizeofCmsghdr = 0xc
2188++ sizeofIovec = 0x8
2189++ sizeofMsghdr = 0x1c
2190+
2191+ sizeofSockaddrInet = 0x10
2192+ sizeofSockaddrInet6 = 0x1c
2193+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go
2194+index 0a4de80..ea0ee00 100644
2195+--- a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go
2196++++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go
2197+@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
2198+ }
2199+
2200+ const (
2201+- sizeofIovec = 0x10
2202+- sizeofMsghdr = 0x30
2203+- sizeofCmsghdr = 0xc
2204++ sizeofIovec = 0x10
2205++ sizeofMsghdr = 0x30
2206+
2207+ sizeofSockaddrInet = 0x10
2208+ sizeofSockaddrInet6 = 0x1c
2209+diff --git a/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go
2210+index 353cd5f..48b2b59 100644
2211+--- a/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go
2212++++ b/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go
2213+@@ -43,9 +43,8 @@ type sockaddrInet6 struct {
2214+ }
2215+
2216+ const (
2217+- sizeofIovec = 0x10
2218+- sizeofMsghdr = 0x30
2219+- sizeofCmsghdr = 0xc
2220++ sizeofIovec = 0x10
2221++ sizeofMsghdr = 0x30
2222+
2223+ sizeofSockaddrInet = 0x10
2224+ sizeofSockaddrInet6 = 0x20
2225+diff --git a/vendor/golang.org/x/net/ipv4/header.go b/vendor/golang.org/x/net/ipv4/header.go
2226+index 701bd4b..a00a3ea 100644
2227+--- a/vendor/golang.org/x/net/ipv4/header.go
2228++++ b/vendor/golang.org/x/net/ipv4/header.go
2229+@@ -14,9 +14,8 @@ import (
2230+ )
2231+
2232+ const (
2233+- Version = 4 // protocol version
2234+- HeaderLen = 20 // header length without extension headers
2235+- maxHeaderLen = 60 // sensible default, revisit if later RFCs define new usage of version and header length fields
2236++ Version = 4 // protocol version
2237++ HeaderLen = 20 // header length without extension headers
2238+ )
2239+
2240+ type HeaderFlags int
2241+@@ -68,7 +67,7 @@ func (h *Header) Marshal() ([]byte, error) {
2242+ b[1] = byte(h.TOS)
2243+ flagsAndFragOff := (h.FragOff & 0x1fff) | int(h.Flags<<13)
2244+ switch runtime.GOOS {
2245+- case "darwin", "dragonfly", "netbsd":
2246++ case "darwin", "ios", "dragonfly", "netbsd":
2247+ socket.NativeEndian.PutUint16(b[2:4], uint16(h.TotalLen))
2248+ socket.NativeEndian.PutUint16(b[6:8], uint16(flagsAndFragOff))
2249+ case "freebsd":
2250+@@ -127,7 +126,7 @@ func (h *Header) Parse(b []byte) error {
2251+ h.Src = net.IPv4(b[12], b[13], b[14], b[15])
2252+ h.Dst = net.IPv4(b[16], b[17], b[18], b[19])
2253+ switch runtime.GOOS {
2254+- case "darwin", "dragonfly", "netbsd":
2255++ case "darwin", "ios", "dragonfly", "netbsd":
2256+ h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4])) + hdrlen
2257+ h.FragOff = int(socket.NativeEndian.Uint16(b[6:8]))
2258+ case "freebsd":
2259+diff --git a/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go
2260+new file mode 100644
2261+index 0000000..e07899b
2262+--- /dev/null
2263++++ b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go
2264+@@ -0,0 +1,30 @@
2265++// Copyright 2020 The Go Authors. All rights reserved.
2266++// Use of this source code is governed by a BSD-style
2267++// license that can be found in the LICENSE file.
2268++
2269++// Package unsafeheader contains header declarations for the Go runtime's
2270++// slice and string implementations.
2271++//
2272++// This package allows x/sys to use types equivalent to
2273++// reflect.SliceHeader and reflect.StringHeader without introducing
2274++// a dependency on the (relatively heavy) "reflect" package.
2275++package unsafeheader
2276++
2277++import (
2278++ "unsafe"
2279++)
2280++
2281++// Slice is the runtime representation of a slice.
2282++// It cannot be used safely or portably and its representation may change in a later release.
2283++type Slice struct {
2284++ Data unsafe.Pointer
2285++ Len int
2286++ Cap int
2287++}
2288++
2289++// String is the runtime representation of a string.
2290++// It cannot be used safely or portably and its representation may change in a later release.
2291++type String struct {
2292++ Data unsafe.Pointer
2293++ Len int
2294++}
2295+diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md
2296+index eb2f78a..579d2d7 100644
2297+--- a/vendor/golang.org/x/sys/unix/README.md
2298++++ b/vendor/golang.org/x/sys/unix/README.md
2299+@@ -89,7 +89,7 @@ constants.
2300+
2301+ Adding new syscall numbers is mostly done by running the build on a sufficiently
2302+ new installation of the target OS (or updating the source checkouts for the
2303+-new build system). However, depending on the OS, you make need to update the
2304++new build system). However, depending on the OS, you may need to update the
2305+ parsing in mksysnum.
2306+
2307+ ### mksyscall.go
2308+@@ -149,10 +149,21 @@ To add a constant, add the header that includes it to the appropriate variable.
2309+ Then, edit the regex (if necessary) to match the desired constant. Avoid making
2310+ the regex too broad to avoid matching unintended constants.
2311+
2312++### mkmerge.go
2313++
2314++This program is used to extract duplicate const, func, and type declarations
2315++from the generated architecture-specific files listed below, and merge these
2316++into a common file for each OS.
2317++
2318++The merge is performed in the following steps:
2319++1. Construct the set of common code that is idential in all architecture-specific files.
2320++2. Write this common code to the merged file.
2321++3. Remove the common code from all architecture-specific files.
2322++
2323+
2324+ ## Generated files
2325+
2326+-### `zerror_${GOOS}_${GOARCH}.go`
2327++### `zerrors_${GOOS}_${GOARCH}.go`
2328+
2329+ A file containing all of the system's generated error numbers, error strings,
2330+ signal numbers, and constants. Generated by `mkerrors.sh` (see above).
2331+diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s
2332+new file mode 100644
2333+index 0000000..567a476
2334+--- /dev/null
2335++++ b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s
2336+@@ -0,0 +1,29 @@
2337++// Copyright 2019 The Go Authors. All rights reserved.
2338++// Use of this source code is governed by a BSD-style
2339++// license that can be found in the LICENSE file.
2340++
2341++// +build !gccgo
2342++
2343++#include "textflag.h"
2344++
2345++//
2346++// System call support for mips64, OpenBSD
2347++//
2348++
2349++// Just jump to package syscall's implementation for all these functions.
2350++// The runtime may know about them.
2351++
2352++TEXT ·Syscall(SB),NOSPLIT,$0-56
2353++ JMP syscall·Syscall(SB)
2354++
2355++TEXT ·Syscall6(SB),NOSPLIT,$0-80
2356++ JMP syscall·Syscall6(SB)
2357++
2358++TEXT ·Syscall9(SB),NOSPLIT,$0-104
2359++ JMP syscall·Syscall9(SB)
2360++
2361++TEXT ·RawSyscall(SB),NOSPLIT,$0-56
2362++ JMP syscall·RawSyscall(SB)
2363++
2364++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
2365++ JMP syscall·RawSyscall6(SB)
2366+diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
2367+index c56bc8b..761db66 100644
2368+--- a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
2369++++ b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
2370+@@ -8,6 +8,7 @@
2371+ package unix
2372+
2373+ const (
2374++ DLT_HHDLC = 0x79
2375+ IFF_SMART = 0x20
2376+ IFT_1822 = 0x2
2377+ IFT_A12MPPSWITCH = 0x82
2378+@@ -210,13 +211,18 @@ const (
2379+ IFT_XETHER = 0x1a
2380+ IPPROTO_MAXID = 0x34
2381+ IPV6_FAITH = 0x1d
2382++ IPV6_MIN_MEMBERSHIPS = 0x1f
2383+ IP_FAITH = 0x16
2384++ IP_MAX_SOURCE_FILTER = 0x400
2385++ IP_MIN_MEMBERSHIPS = 0x1f
2386+ MAP_NORESERVE = 0x40
2387+ MAP_RENAME = 0x20
2388+ NET_RT_MAXID = 0x6
2389+ RTF_PRCLONING = 0x10000
2390+ RTM_OLDADD = 0x9
2391+ RTM_OLDDEL = 0xa
2392++ RT_CACHING_CONTEXT = 0x1
2393++ RT_NORTREF = 0x2
2394+ SIOCADDRT = 0x8030720a
2395+ SIOCALIFADDR = 0x8118691b
2396+ SIOCDELRT = 0x8030720b
2397+diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
2398+index 3e97711..070f44b 100644
2399+--- a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
2400++++ b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
2401+@@ -8,6 +8,7 @@
2402+ package unix
2403+
2404+ const (
2405++ DLT_HHDLC = 0x79
2406+ IFF_SMART = 0x20
2407+ IFT_1822 = 0x2
2408+ IFT_A12MPPSWITCH = 0x82
2409+@@ -210,13 +211,18 @@ const (
2410+ IFT_XETHER = 0x1a
2411+ IPPROTO_MAXID = 0x34
2412+ IPV6_FAITH = 0x1d
2413++ IPV6_MIN_MEMBERSHIPS = 0x1f
2414+ IP_FAITH = 0x16
2415++ IP_MAX_SOURCE_FILTER = 0x400
2416++ IP_MIN_MEMBERSHIPS = 0x1f
2417+ MAP_NORESERVE = 0x40
2418+ MAP_RENAME = 0x20
2419+ NET_RT_MAXID = 0x6
2420+ RTF_PRCLONING = 0x10000
2421+ RTM_OLDADD = 0x9
2422+ RTM_OLDDEL = 0xa
2423++ RT_CACHING_CONTEXT = 0x1
2424++ RT_NORTREF = 0x2
2425+ SIOCADDRT = 0x8040720a
2426+ SIOCALIFADDR = 0x8118691b
2427+ SIOCDELRT = 0x8040720b
2428+diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
2429+new file mode 100644
2430+index 0000000..946dcf3
2431+--- /dev/null
2432++++ b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
2433+@@ -0,0 +1,17 @@
2434++// Copyright 2020 The Go Authors. All rights reserved.
2435++// Use of this source code is governed by a BSD-style
2436++// license that can be found in the LICENSE file.
2437++
2438++// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
2439++// them here for backwards compatibility.
2440++
2441++package unix
2442++
2443++const (
2444++ DLT_HHDLC = 0x79
2445++ IPV6_MIN_MEMBERSHIPS = 0x1f
2446++ IP_MAX_SOURCE_FILTER = 0x400
2447++ IP_MIN_MEMBERSHIPS = 0x1f
2448++ RT_CACHING_CONTEXT = 0x1
2449++ RT_NORTREF = 0x2
2450++)
2451+diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
2452+index 5868a4a..a9911c7 100644
2453+--- a/vendor/golang.org/x/sys/unix/fcntl_darwin.go
2454++++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
2455+@@ -16,3 +16,9 @@ func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
2456+ _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))
2457+ return err
2458+ }
2459++
2460++// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command.
2461++func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error {
2462++ _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore))))
2463++ return err
2464++}
2465+diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go
2466+index cd6f5a6..86032c1 100644
2467+--- a/vendor/golang.org/x/sys/unix/gccgo.go
2468++++ b/vendor/golang.org/x/sys/unix/gccgo.go
2469+@@ -12,10 +12,8 @@ import "syscall"
2470+ // We can't use the gc-syntax .s files for gccgo. On the plus side
2471+ // much of the functionality can be written directly in Go.
2472+
2473+-//extern gccgoRealSyscallNoError
2474+ func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr)
2475+
2476+-//extern gccgoRealSyscall
2477+ func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)
2478+
2479+ func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
2480+diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c
2481+index c44730c..2cb1fef 100644
2482+--- a/vendor/golang.org/x/sys/unix/gccgo_c.c
2483++++ b/vendor/golang.org/x/sys/unix/gccgo_c.c
2484+@@ -21,6 +21,9 @@ struct ret {
2485+ uintptr_t err;
2486+ };
2487+
2488++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)
2489++ __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscall");
2490++
2491+ struct ret
2492+ 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)
2493+ {
2494+@@ -32,6 +35,9 @@ gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintp
2495+ return r;
2496+ }
2497+
2498++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)
2499++ __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscallNoError");
2500++
2501+ uintptr_t
2502+ 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)
2503+ {
2504+diff --git a/vendor/golang.org/x/sys/unix/ioctl.go b/vendor/golang.org/x/sys/unix/ioctl.go
2505+index 3559e5d..5641678 100644
2506+--- a/vendor/golang.org/x/sys/unix/ioctl.go
2507++++ b/vendor/golang.org/x/sys/unix/ioctl.go
2508+@@ -20,6 +20,15 @@ func IoctlSetInt(fd int, req uint, value int) error {
2509+ return ioctl(fd, req, uintptr(value))
2510+ }
2511+
2512++// IoctlSetPointerInt performs an ioctl operation which sets an
2513++// integer value on fd, using the specified request number. The ioctl
2514++// argument is called with a pointer to the integer value, rather than
2515++// passing the integer value directly.
2516++func IoctlSetPointerInt(fd int, req uint, value int) error {
2517++ v := int32(value)
2518++ return ioctl(fd, req, uintptr(unsafe.Pointer(&v)))
2519++}
2520++
2521+ // IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
2522+ //
2523+ // To change fd's window size, the req argument should be TIOCSWINSZ.
2524+diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh
2525+index fa0c69b..d257fac 100644
2526+--- a/vendor/golang.org/x/sys/unix/mkall.sh
2527++++ b/vendor/golang.org/x/sys/unix/mkall.sh
2528+@@ -73,26 +73,22 @@ aix_ppc64)
2529+ darwin_386)
2530+ mkerrors="$mkerrors -m32"
2531+ mksyscall="go run mksyscall.go -l32"
2532+- mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
2533+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
2534+ mkasm="go run mkasm_darwin.go"
2535+ ;;
2536+ darwin_amd64)
2537+ mkerrors="$mkerrors -m64"
2538+- mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
2539+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
2540+ mkasm="go run mkasm_darwin.go"
2541+ ;;
2542+ darwin_arm)
2543+ mkerrors="$mkerrors"
2544+ mksyscall="go run mksyscall.go -l32"
2545+- mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
2546+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
2547+ mkasm="go run mkasm_darwin.go"
2548+ ;;
2549+ darwin_arm64)
2550+ mkerrors="$mkerrors -m64"
2551+- mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
2552+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
2553+ mkasm="go run mkasm_darwin.go"
2554+ ;;
2555+@@ -124,7 +120,7 @@ freebsd_arm)
2556+ freebsd_arm64)
2557+ mkerrors="$mkerrors -m64"
2558+ mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
2559+- mktypes="GOARCH=$GOARCH go tool cgo -godefs"
2560++ mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
2561+ ;;
2562+ netbsd_386)
2563+ mkerrors="$mkerrors -m32"
2564+@@ -184,12 +180,27 @@ openbsd_arm64)
2565+ # API consistent across platforms.
2566+ mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
2567+ ;;
2568++openbsd_mips64)
2569++ mkerrors="$mkerrors -m64"
2570++ mksyscall="go run mksyscall.go -openbsd"
2571++ mksysctl="go run mksysctl_openbsd.go"
2572++ mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'"
2573++ # Let the type of C char be signed for making the bare syscall
2574++ # API consistent across platforms.
2575++ mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
2576++ ;;
2577+ solaris_amd64)
2578+ mksyscall="go run mksyscall_solaris.go"
2579+ mkerrors="$mkerrors -m64"
2580+ mksysnum=
2581+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
2582+ ;;
2583++illumos_amd64)
2584++ mksyscall="go run mksyscall_solaris.go"
2585++ mkerrors=
2586++ mksysnum=
2587++ mktypes=
2588++ ;;
2589+ *)
2590+ echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2
2591+ exit 1
2592+@@ -211,12 +222,15 @@ esac
2593+ # aix/ppc64 script generates files instead of writing to stdin.
2594+ 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 " ;
2595+ elif [ "$GOOS" == "darwin" ]; then
2596+- # pre-1.12, direct syscalls
2597+- echo "$mksyscall -tags $GOOS,$GOARCH,!go1.12 $syscall_goos syscall_darwin_${GOARCH}.1_11.go $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.1_11.go";
2598+ # 1.12 and later, syscalls via libSystem
2599+ echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
2600+ # 1.13 and later, syscalls via libSystem (including syscallPtr)
2601+ echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go";
2602++ elif [ "$GOOS" == "illumos" ]; then
2603++ # illumos code generation requires a --illumos switch
2604++ echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go";
2605++ # illumos implies solaris, so solaris code generation is also required
2606++ echo "$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go";
2607+ else
2608+ echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
2609+ fi
2610+diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh
2611+index 6ffac92..1bef714 100644
2612+--- a/vendor/golang.org/x/sys/unix/mkerrors.sh
2613++++ b/vendor/golang.org/x/sys/unix/mkerrors.sh
2614+@@ -58,6 +58,7 @@ includes_Darwin='
2615+ #define _DARWIN_USE_64_BIT_INODE
2616+ #include <stdint.h>
2617+ #include <sys/attr.h>
2618++#include <sys/clonefile.h>
2619+ #include <sys/types.h>
2620+ #include <sys/event.h>
2621+ #include <sys/ptrace.h>
2622+@@ -105,7 +106,9 @@ includes_FreeBSD='
2623+ #include <sys/capsicum.h>
2624+ #include <sys/param.h>
2625+ #include <sys/types.h>
2626++#include <sys/disk.h>
2627+ #include <sys/event.h>
2628++#include <sys/sched.h>
2629+ #include <sys/select.h>
2630+ #include <sys/socket.h>
2631+ #include <sys/sockio.h>
2632+@@ -186,19 +189,24 @@ struct ltchars {
2633+ #include <sys/select.h>
2634+ #include <sys/signalfd.h>
2635+ #include <sys/socket.h>
2636++#include <sys/timerfd.h>
2637+ #include <sys/uio.h>
2638+ #include <sys/xattr.h>
2639+ #include <linux/bpf.h>
2640+ #include <linux/can.h>
2641++#include <linux/can/error.h>
2642++#include <linux/can/raw.h>
2643+ #include <linux/capability.h>
2644+ #include <linux/cryptouser.h>
2645+ #include <linux/devlink.h>
2646++#include <linux/dm-ioctl.h>
2647+ #include <linux/errqueue.h>
2648+ #include <linux/falloc.h>
2649+ #include <linux/fanotify.h>
2650+ #include <linux/filter.h>
2651+ #include <linux/fs.h>
2652+ #include <linux/fscrypt.h>
2653++#include <linux/fsverity.h>
2654+ #include <linux/genetlink.h>
2655+ #include <linux/hdreg.h>
2656+ #include <linux/icmpv6.h>
2657+@@ -280,6 +288,11 @@ struct ltchars {
2658+ // for the tipc_subscr timeout __u32 field.
2659+ #undef TIPC_WAIT_FOREVER
2660+ #define TIPC_WAIT_FOREVER 0xffffffff
2661++
2662++// Copied from linux/l2tp.h
2663++// Including linux/l2tp.h here causes conflicts between linux/in.h
2664++// and netinet/in.h included via net/route.h above.
2665++#define IPPROTO_L2TP 115
2666+ '
2667+
2668+ includes_NetBSD='
2669+@@ -289,6 +302,7 @@ includes_NetBSD='
2670+ #include <sys/extattr.h>
2671+ #include <sys/mman.h>
2672+ #include <sys/mount.h>
2673++#include <sys/sched.h>
2674+ #include <sys/select.h>
2675+ #include <sys/socket.h>
2676+ #include <sys/sockio.h>
2677+@@ -317,6 +331,7 @@ includes_OpenBSD='
2678+ #include <sys/mman.h>
2679+ #include <sys/mount.h>
2680+ #include <sys/select.h>
2681++#include <sys/sched.h>
2682+ #include <sys/socket.h>
2683+ #include <sys/sockio.h>
2684+ #include <sys/stat.h>
2685+@@ -473,12 +488,13 @@ ccflags="$@"
2686+ $2 ~ /^(MS|MNT|UMOUNT)_/ ||
2687+ $2 ~ /^NS_GET_/ ||
2688+ $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||
2689+- $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT)_/ ||
2690++ $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|TFD)_/ ||
2691+ $2 ~ /^KEXEC_/ ||
2692+ $2 ~ /^LINUX_REBOOT_CMD_/ ||
2693+ $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||
2694+ $2 ~ /^MODULE_INIT_/ ||
2695+ $2 !~ "NLA_TYPE_MASK" &&
2696++ $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ &&
2697+ $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ ||
2698+ $2 ~ /^SIOC/ ||
2699+ $2 ~ /^TIOC/ ||
2700+@@ -486,8 +502,9 @@ ccflags="$@"
2701+ $2 ~ /^TCSET/ ||
2702+ $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ ||
2703+ $2 !~ "RTF_BITS" &&
2704+- $2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ ||
2705++ $2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ ||
2706+ $2 ~ /^BIOC/ ||
2707++ $2 ~ /^DIOC/ ||
2708+ $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||
2709+ $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||
2710+ $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||
2711+@@ -497,10 +514,15 @@ ccflags="$@"
2712+ $2 ~ /^(CLOCK|TIMER)_/ ||
2713+ $2 ~ /^CAN_/ ||
2714+ $2 ~ /^CAP_/ ||
2715++ $2 ~ /^CP_/ ||
2716++ $2 ~ /^CPUSTATES$/ ||
2717+ $2 ~ /^ALG_/ ||
2718++ $2 ~ /^FI(CLONE|DEDUPERANGE)/ ||
2719+ $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ ||
2720+- $2 ~ /^FS_IOC_.*ENCRYPTION/ ||
2721++ $2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ ||
2722++ $2 ~ /^FS_VERITY_/ ||
2723+ $2 ~ /^FSCRYPT_/ ||
2724++ $2 ~ /^DM_/ ||
2725+ $2 ~ /^GRND_/ ||
2726+ $2 ~ /^RND/ ||
2727+ $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ ||
2728+diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
2729+index 7d08dae..57a0021 100644
2730+--- a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
2731++++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
2732+@@ -20,7 +20,7 @@ func cmsgAlignOf(salen int) int {
2733+ case "aix":
2734+ // There is no alignment on AIX.
2735+ salign = 1
2736+- case "darwin", "illumos", "solaris":
2737++ case "darwin", "ios", "illumos", "solaris":
2738+ // NOTE: It seems like 64-bit Darwin, Illumos and Solaris
2739+ // kernels still require 32-bit aligned access to network
2740+ // subsystem.
2741+@@ -32,6 +32,10 @@ func cmsgAlignOf(salen int) int {
2742+ if runtime.GOARCH == "arm" {
2743+ salign = 8
2744+ }
2745++ // NetBSD aarch64 requires 128-bit alignment.
2746++ if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" {
2747++ salign = 16
2748++ }
2749+ }
2750+
2751+ return (salen + salign - 1) & ^(salign - 1)
2752+diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go
2753+index 68605db..123536a 100644
2754+--- a/vendor/golang.org/x/sys/unix/syscall_bsd.go
2755++++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go
2756+@@ -18,6 +18,21 @@ import (
2757+ "unsafe"
2758+ )
2759+
2760++const ImplementsGetwd = true
2761++
2762++func Getwd() (string, error) {
2763++ var buf [PathMax]byte
2764++ _, err := Getcwd(buf[0:])
2765++ if err != nil {
2766++ return "", err
2767++ }
2768++ n := clen(buf[:])
2769++ if n < 1 {
2770++ return "", EINVAL
2771++ }
2772++ return string(buf[:n]), nil
2773++}
2774++
2775+ /*
2776+ * Wrapped
2777+ */
2778+@@ -272,7 +287,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
2779+ if err != nil {
2780+ return
2781+ }
2782+- if runtime.GOOS == "darwin" && len == 0 {
2783++ if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && len == 0 {
2784+ // Accepted socket has no address.
2785+ // This is likely due to a bug in xnu kernels,
2786+ // where instead of ECONNABORTED error socket
2787+@@ -527,6 +542,23 @@ func SysctlClockinfo(name string) (*Clockinfo, error) {
2788+ return &ci, nil
2789+ }
2790+
2791++func SysctlTimeval(name string) (*Timeval, error) {
2792++ mib, err := sysctlmib(name)
2793++ if err != nil {
2794++ return nil, err
2795++ }
2796++
2797++ var tv Timeval
2798++ n := uintptr(unsafe.Sizeof(tv))
2799++ if err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil {
2800++ return nil, err
2801++ }
2802++ if n != unsafe.Sizeof(tv) {
2803++ return nil, EIO
2804++ }
2805++ return &tv, nil
2806++}
2807++
2808+ //sys utimes(path string, timeval *[2]Timeval) (err error)
2809+
2810+ func Utimes(path string, tv []Timeval) error {
2811+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
2812+index 6a15cba..b31ef03 100644
2813+--- a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
2814++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
2815+@@ -10,6 +10,8 @@ import (
2816+ "unsafe"
2817+ )
2818+
2819++const _SYS_GETDIRENTRIES64 = 344
2820++
2821+ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
2822+ // To implement this using libSystem we'd need syscall_syscallPtr for
2823+ // fdopendir. However, syscallPtr was only added in Go 1.13, so we fall
2824+@@ -20,7 +22,7 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
2825+ } else {
2826+ p = unsafe.Pointer(&_zero)
2827+ }
2828+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
2829++ r0, _, e1 := Syscall6(_SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
2830+ n = int(r0)
2831+ if e1 != 0 {
2832+ return n, errnoErr(e1)
2833+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
2834+index f911617..dc0befe 100644
2835+--- a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
2836++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
2837+@@ -6,7 +6,11 @@
2838+
2839+ package unix
2840+
2841+-import "unsafe"
2842++import (
2843++ "unsafe"
2844++
2845++ "golang.org/x/sys/internal/unsafeheader"
2846++)
2847+
2848+ //sys closedir(dir uintptr) (err error)
2849+ //sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno)
2850+@@ -71,6 +75,7 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
2851+ cnt++
2852+ continue
2853+ }
2854++
2855+ reclen := int(entry.Reclen)
2856+ if reclen > len(buf) {
2857+ // Not enough room. Return for now.
2858+@@ -79,13 +84,15 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
2859+ // restarting is O(n^2) in the length of the directory. Oh well.
2860+ break
2861+ }
2862++
2863+ // Copy entry into return buffer.
2864+- s := struct {
2865+- ptr unsafe.Pointer
2866+- siz int
2867+- cap int
2868+- }{ptr: unsafe.Pointer(&entry), siz: reclen, cap: reclen}
2869+- copy(buf, *(*[]byte)(unsafe.Pointer(&s)))
2870++ var s []byte
2871++ hdr := (*unsafeheader.Slice)(unsafe.Pointer(&s))
2872++ hdr.Data = unsafe.Pointer(&entry)
2873++ hdr.Cap = reclen
2874++ hdr.Len = reclen
2875++ copy(buf, s)
2876++
2877+ buf = buf[reclen:]
2878+ n += reclen
2879+ cnt++
2880+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go
2881+index 9a5a6ee..21b8092 100644
2882+--- a/vendor/golang.org/x/sys/unix/syscall_darwin.go
2883++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go
2884+@@ -13,29 +13,10 @@
2885+ package unix
2886+
2887+ import (
2888+- "errors"
2889+ "syscall"
2890+ "unsafe"
2891+ )
2892+
2893+-const ImplementsGetwd = true
2894+-
2895+-func Getwd() (string, error) {
2896+- buf := make([]byte, 2048)
2897+- attrs, err := getAttrList(".", attrList{CommonAttr: attrCmnFullpath}, buf, 0)
2898+- if err == nil && len(attrs) == 1 && len(attrs[0]) >= 2 {
2899+- wd := string(attrs[0])
2900+- // Sanity check that it's an absolute path and ends
2901+- // in a null byte, which we then strip.
2902+- if wd[0] == '/' && wd[len(wd)-1] == 0 {
2903+- return wd[:len(wd)-1], nil
2904+- }
2905+- }
2906+- // If pkg/os/getwd.go gets ENOTSUP, it will fall back to the
2907+- // slow algorithm.
2908+- return "", ENOTSUP
2909+-}
2910+-
2911+ // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
2912+ type SockaddrDatalink struct {
2913+ Len uint8
2914+@@ -49,6 +30,11 @@ type SockaddrDatalink struct {
2915+ raw RawSockaddrDatalink
2916+ }
2917+
2918++// Some external packages rely on SYS___SYSCTL being defined to implement their
2919++// own sysctl wrappers. Provide it here, even though direct syscalls are no
2920++// longer supported on darwin.
2921++const SYS___SYSCTL = 202
2922++
2923+ // Translate "kern.hostname" to []_C_int{0,1,2,3}.
2924+ func nametomib(name string) (mib []_C_int, err error) {
2925+ const siz = unsafe.Sizeof(mib[0])
2926+@@ -92,11 +78,6 @@ func direntNamlen(buf []byte) (uint64, bool) {
2927+ func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) }
2928+ func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) }
2929+
2930+-const (
2931+- attrBitMapCount = 5
2932+- attrCmnFullpath = 0x08000000
2933+-)
2934+-
2935+ type attrList struct {
2936+ bitmapCount uint16
2937+ _ uint16
2938+@@ -107,54 +88,6 @@ type attrList struct {
2939+ Forkattr uint32
2940+ }
2941+
2942+-func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) {
2943+- if len(attrBuf) < 4 {
2944+- return nil, errors.New("attrBuf too small")
2945+- }
2946+- attrList.bitmapCount = attrBitMapCount
2947+-
2948+- var _p0 *byte
2949+- _p0, err = BytePtrFromString(path)
2950+- if err != nil {
2951+- return nil, err
2952+- }
2953+-
2954+- if err := getattrlist(_p0, unsafe.Pointer(&attrList), unsafe.Pointer(&attrBuf[0]), uintptr(len(attrBuf)), int(options)); err != nil {
2955+- return nil, err
2956+- }
2957+- size := *(*uint32)(unsafe.Pointer(&attrBuf[0]))
2958+-
2959+- // dat is the section of attrBuf that contains valid data,
2960+- // without the 4 byte length header. All attribute offsets
2961+- // are relative to dat.
2962+- dat := attrBuf
2963+- if int(size) < len(attrBuf) {
2964+- dat = dat[:size]
2965+- }
2966+- dat = dat[4:] // remove length prefix
2967+-
2968+- for i := uint32(0); int(i) < len(dat); {
2969+- header := dat[i:]
2970+- if len(header) < 8 {
2971+- return attrs, errors.New("truncated attribute header")
2972+- }
2973+- datOff := *(*int32)(unsafe.Pointer(&header[0]))
2974+- attrLen := *(*uint32)(unsafe.Pointer(&header[4]))
2975+- if datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) {
2976+- return attrs, errors.New("truncated results; attrBuf too small")
2977+- }
2978+- end := uint32(datOff) + attrLen
2979+- attrs = append(attrs, dat[datOff:end])
2980+- i = end
2981+- if r := i % 4; r != 0 {
2982+- i += (4 - r)
2983+- }
2984+- }
2985+- return
2986+-}
2987+-
2988+-//sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)
2989+-
2990+ //sysnb pipe() (r int, w int, err error)
2991+
2992+ func Pipe(p []int) (err error) {
2993+@@ -396,6 +329,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
2994+ //sys Chroot(path string) (err error)
2995+ //sys ClockGettime(clockid int32, time *Timespec) (err error)
2996+ //sys Close(fd int) (err error)
2997++//sys Clonefile(src string, dst string, flags int) (err error)
2998++//sys Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error)
2999+ //sys Dup(fd int) (nfd int, err error)
3000+ //sys Dup2(from int, to int) (err error)
3001+ //sys Exchangedata(path1 string, path2 string, options int) (err error)
3002+@@ -407,10 +342,12 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
3003+ //sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error)
3004+ //sys Fchown(fd int, uid int, gid int) (err error)
3005+ //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
3006++//sys Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error)
3007+ //sys Flock(fd int, how int) (err error)
3008+ //sys Fpathconf(fd int, name int) (val int, err error)
3009+ //sys Fsync(fd int) (err error)
3010+ //sys Ftruncate(fd int, length int64) (err error)
3011++//sys Getcwd(buf []byte) (n int, err error)
3012+ //sys Getdtablesize() (size int)
3013+ //sysnb Getegid() (egid int)
3014+ //sysnb Geteuid() (uid int)
3015+@@ -423,6 +360,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
3016+ //sysnb Getrlimit(which int, lim *Rlimit) (err error)
3017+ //sysnb Getrusage(who int, rusage *Rusage) (err error)
3018+ //sysnb Getsid(pid int) (sid int, err error)
3019++//sysnb Gettimeofday(tp *Timeval) (err error)
3020+ //sysnb Getuid() (uid int)
3021+ //sysnb Issetugid() (tainted bool)
3022+ //sys Kqueue() (fd int, err error)
3023+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
3024+deleted file mode 100644
3025+index 6b223f9..0000000
3026+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
3027++++ /dev/null
3028+@@ -1,9 +0,0 @@
3029+-// Copyright 2019 The Go Authors. All rights reserved.
3030+-// Use of this source code is governed by a BSD-style
3031+-// license that can be found in the LICENSE file.
3032+-
3033+-// +build darwin,386,!go1.12
3034+-
3035+-package unix
3036+-
3037+-//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
3038+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
3039+index 707ba4f..ea0be1e 100644
3040+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
3041++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
3042+@@ -20,17 +20,6 @@ func setTimeval(sec, usec int64) Timeval {
3043+ return Timeval{Sec: int32(sec), Usec: int32(usec)}
3044+ }
3045+
3046+-//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error)
3047+-func Gettimeofday(tv *Timeval) (err error) {
3048+- // The tv passed to gettimeofday must be non-nil
3049+- // but is otherwise unused. The answers come back
3050+- // in the two registers.
3051+- sec, usec, err := gettimeofday(tv)
3052+- tv.Sec = int32(sec)
3053+- tv.Usec = int32(usec)
3054+- return err
3055+-}
3056+-
3057+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
3058+ k.Ident = uint32(fd)
3059+ k.Filter = int16(mode)
3060+@@ -55,10 +44,6 @@ func (cmsg *Cmsghdr) SetLen(length int) {
3061+
3062+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
3063+
3064+-// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
3065+-// of darwin/386 the syscall is called sysctl instead of __sysctl.
3066+-const SYS___SYSCTL = SYS_SYSCTL
3067+-
3068+ //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
3069+ //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
3070+ //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
3071+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
3072+deleted file mode 100644
3073+index 68ebd6f..0000000
3074+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
3075++++ /dev/null
3076+@@ -1,9 +0,0 @@
3077+-// Copyright 2019 The Go Authors. All rights reserved.
3078+-// Use of this source code is governed by a BSD-style
3079+-// license that can be found in the LICENSE file.
3080+-
3081+-// +build darwin,amd64,!go1.12
3082+-
3083+-package unix
3084+-
3085+-//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
3086+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
3087+index fdbfb59..5862404 100644
3088+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
3089++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
3090+@@ -20,17 +20,6 @@ func setTimeval(sec, usec int64) Timeval {
3091+ return Timeval{Sec: sec, Usec: int32(usec)}
3092+ }
3093+
3094+-//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error)
3095+-func Gettimeofday(tv *Timeval) (err error) {
3096+- // The tv passed to gettimeofday must be non-nil
3097+- // but is otherwise unused. The answers come back
3098+- // in the two registers.
3099+- sec, usec, err := gettimeofday(tv)
3100+- tv.Sec = sec
3101+- tv.Usec = usec
3102+- return err
3103+-}
3104+-
3105+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
3106+ k.Ident = uint64(fd)
3107+ k.Filter = int16(mode)
3108+@@ -55,10 +44,6 @@ func (cmsg *Cmsghdr) SetLen(length int) {
3109+
3110+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
3111+
3112+-// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
3113+-// of darwin/amd64 the syscall is called sysctl instead of __sysctl.
3114+-const SYS___SYSCTL = SYS_SYSCTL
3115+-
3116+ //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
3117+ //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
3118+ //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
3119+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
3120+deleted file mode 100644
3121+index 0e3f25a..0000000
3122+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
3123++++ /dev/null
3124+@@ -1,11 +0,0 @@
3125+-// Copyright 2019 The Go Authors. All rights reserved.
3126+-// Use of this source code is governed by a BSD-style
3127+-// license that can be found in the LICENSE file.
3128+-
3129+-// +build darwin,arm,!go1.12
3130+-
3131+-package unix
3132+-
3133+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
3134+- return 0, ENOSYS
3135+-}
3136+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
3137+index f8bc4cf..b8b3141 100644
3138+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
3139++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
3140+@@ -20,17 +20,6 @@ func setTimeval(sec, usec int64) Timeval {
3141+ return Timeval{Sec: int32(sec), Usec: int32(usec)}
3142+ }
3143+
3144+-//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error)
3145+-func Gettimeofday(tv *Timeval) (err error) {
3146+- // The tv passed to gettimeofday must be non-nil
3147+- // but is otherwise unused. The answers come back
3148+- // in the two registers.
3149+- sec, usec, err := gettimeofday(tv)
3150+- tv.Sec = int32(sec)
3151+- tv.Usec = int32(usec)
3152+- return err
3153+-}
3154+-
3155+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
3156+ k.Ident = uint32(fd)
3157+ k.Filter = int16(mode)
3158+@@ -55,10 +44,6 @@ func (cmsg *Cmsghdr) SetLen(length int) {
3159+
3160+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
3161+
3162+-// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
3163+-// of darwin/arm the syscall is called sysctl instead of __sysctl.
3164+-const SYS___SYSCTL = SYS_SYSCTL
3165+-
3166+ //sys Fstat(fd int, stat *Stat_t) (err error)
3167+ //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
3168+ //sys Fstatfs(fd int, stat *Statfs_t) (err error)
3169+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
3170+deleted file mode 100644
3171+index 01d4504..0000000
3172+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
3173++++ /dev/null
3174+@@ -1,11 +0,0 @@
3175+-// Copyright 2019 The Go Authors. All rights reserved.
3176+-// Use of this source code is governed by a BSD-style
3177+-// license that can be found in the LICENSE file.
3178+-
3179+-// +build darwin,arm64,!go1.12
3180+-
3181+-package unix
3182+-
3183+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
3184+- return 0, ENOSYS
3185+-}
3186+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
3187+index 5ede3ac..6741398 100644
3188+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
3189++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
3190+@@ -22,17 +22,6 @@ func setTimeval(sec, usec int64) Timeval {
3191+ return Timeval{Sec: sec, Usec: int32(usec)}
3192+ }
3193+
3194+-//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error)
3195+-func Gettimeofday(tv *Timeval) (err error) {
3196+- // The tv passed to gettimeofday must be non-nil
3197+- // but is otherwise unused. The answers come back
3198+- // in the two registers.
3199+- sec, usec, err := gettimeofday(tv)
3200+- tv.Sec = sec
3201+- tv.Usec = usec
3202+- return err
3203+-}
3204+-
3205+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
3206+ k.Ident = uint64(fd)
3207+ k.Filter = int16(mode)
3208+@@ -57,10 +46,6 @@ func (cmsg *Cmsghdr) SetLen(length int) {
3209+
3210+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
3211+
3212+-// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
3213+-// of darwin/arm64 the syscall is called sysctl instead of __sysctl.
3214+-const SYS___SYSCTL = SYS_SYSCTL
3215+-
3216+ //sys Fstat(fd int, stat *Stat_t) (err error)
3217+ //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
3218+ //sys Fstatfs(fd int, stat *Statfs_t) (err error)
3219+diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
3220+index 8a195ae..bed7dcf 100644
3221+--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
3222++++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
3223+@@ -129,23 +129,8 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
3224+ return
3225+ }
3226+
3227+-const ImplementsGetwd = true
3228+-
3229+ //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
3230+
3231+-func Getwd() (string, error) {
3232+- var buf [PathMax]byte
3233+- _, err := Getcwd(buf[0:])
3234+- if err != nil {
3235+- return "", err
3236+- }
3237+- n := clen(buf[:])
3238+- if n < 1 {
3239+- return "", EINVAL
3240+- }
3241+- return string(buf[:n]), nil
3242+-}
3243+-
3244+ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
3245+ var _p0 unsafe.Pointer
3246+ var bufsize uintptr
3247+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
3248+index 6b2eca4..f6db02a 100644
3249+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go
3250++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
3251+@@ -140,23 +140,8 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
3252+ return
3253+ }
3254+
3255+-const ImplementsGetwd = true
3256+-
3257+ //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
3258+
3259+-func Getwd() (string, error) {
3260+- var buf [PathMax]byte
3261+- _, err := Getcwd(buf[0:])
3262+- if err != nil {
3263+- return "", err
3264+- }
3265+- n := clen(buf[:])
3266+- if n < 1 {
3267+- return "", EINVAL
3268+- }
3269+- return string(buf[:n]), nil
3270+-}
3271+-
3272+ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
3273+ var (
3274+ _p0 unsafe.Pointer
3275+@@ -521,10 +506,6 @@ func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {
3276+ return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
3277+ }
3278+
3279+-func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
3280+- return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
3281+-}
3282+-
3283+ func PtraceGetRegs(pid int, regsout *Reg) (err error) {
3284+ return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
3285+ }
3286+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
3287+index 0a5a66f..72a506d 100644
3288+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
3289++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
3290+@@ -55,6 +55,10 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
3291+
3292+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
3293+
3294++func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
3295++ return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
3296++}
3297++
3298+ func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
3299+ ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
3300+ err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
3301+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
3302+index 8025b22..d5e376a 100644
3303+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
3304++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
3305+@@ -55,6 +55,10 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
3306+
3307+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
3308+
3309++func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
3310++ return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
3311++}
3312++
3313+ func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
3314+ ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
3315+ err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
3316+diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go
3317+new file mode 100644
3318+index 0000000..bbc4f3e
3319+--- /dev/null
3320++++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go
3321+@@ -0,0 +1,90 @@
3322++// Copyright 2009 The Go Authors. All rights reserved.
3323++// Use of this source code is governed by a BSD-style
3324++// license that can be found in the LICENSE file.
3325++
3326++// illumos system calls not present on Solaris.
3327++
3328++// +build amd64,illumos
3329++
3330++package unix
3331++
3332++import "unsafe"
3333++
3334++func bytes2iovec(bs [][]byte) []Iovec {
3335++ iovecs := make([]Iovec, len(bs))
3336++ for i, b := range bs {
3337++ iovecs[i].SetLen(len(b))
3338++ if len(b) > 0 {
3339++ // somehow Iovec.Base on illumos is (*int8), not (*byte)
3340++ iovecs[i].Base = (*int8)(unsafe.Pointer(&b[0]))
3341++ } else {
3342++ iovecs[i].Base = (*int8)(unsafe.Pointer(&_zero))
3343++ }
3344++ }
3345++ return iovecs
3346++}
3347++
3348++//sys readv(fd int, iovs []Iovec) (n int, err error)
3349++
3350++func Readv(fd int, iovs [][]byte) (n int, err error) {
3351++ iovecs := bytes2iovec(iovs)
3352++ n, err = readv(fd, iovecs)
3353++ return n, err
3354++}
3355++
3356++//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error)
3357++
3358++func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) {
3359++ iovecs := bytes2iovec(iovs)
3360++ n, err = preadv(fd, iovecs, off)
3361++ return n, err
3362++}
3363++
3364++//sys writev(fd int, iovs []Iovec) (n int, err error)
3365++
3366++func Writev(fd int, iovs [][]byte) (n int, err error) {
3367++ iovecs := bytes2iovec(iovs)
3368++ n, err = writev(fd, iovecs)
3369++ return n, err
3370++}
3371++
3372++//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error)
3373++
3374++func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) {
3375++ iovecs := bytes2iovec(iovs)
3376++ n, err = pwritev(fd, iovecs, off)
3377++ return n, err
3378++}
3379++
3380++//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4
3381++
3382++func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {
3383++ var rsa RawSockaddrAny
3384++ var len _Socklen = SizeofSockaddrAny
3385++ nfd, err = accept4(fd, &rsa, &len, flags)
3386++ if err != nil {
3387++ return
3388++ }
3389++ if len > SizeofSockaddrAny {
3390++ panic("RawSockaddrAny too small")
3391++ }
3392++ sa, err = anyToSockaddr(fd, &rsa)
3393++ if err != nil {
3394++ Close(nfd)
3395++ nfd = 0
3396++ }
3397++ return
3398++}
3399++
3400++//sysnb pipe2(p *[2]_C_int, flags int) (err error)
3401++
3402++func Pipe2(p []int, flags int) error {
3403++ if len(p) != 2 {
3404++ return EINVAL
3405++ }
3406++ var pp [2]_C_int
3407++ err := pipe2(&pp, flags)
3408++ p[0] = int(pp[0])
3409++ p[1] = int(pp[1])
3410++ return err
3411++}
3412+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go
3413+index 0efe45a..94dafa4 100644
3414+--- a/vendor/golang.org/x/sys/unix/syscall_linux.go
3415++++ b/vendor/golang.org/x/sys/unix/syscall_linux.go
3416+@@ -82,21 +82,18 @@ func IoctlRetInt(fd int, req uint) (int, error) {
3417+ return int(ret), nil
3418+ }
3419+
3420+-// IoctlSetPointerInt performs an ioctl operation which sets an
3421+-// integer value on fd, using the specified request number. The ioctl
3422+-// argument is called with a pointer to the integer value, rather than
3423+-// passing the integer value directly.
3424+-func IoctlSetPointerInt(fd int, req uint, value int) error {
3425+- v := int32(value)
3426+- return ioctl(fd, req, uintptr(unsafe.Pointer(&v)))
3427+-}
3428+-
3429+ func IoctlSetRTCTime(fd int, value *RTCTime) error {
3430+ err := ioctl(fd, RTC_SET_TIME, uintptr(unsafe.Pointer(value)))
3431+ runtime.KeepAlive(value)
3432+ return err
3433+ }
3434+
3435++func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error {
3436++ err := ioctl(fd, RTC_WKALM_SET, uintptr(unsafe.Pointer(value)))
3437++ runtime.KeepAlive(value)
3438++ return err
3439++}
3440++
3441+ func IoctlGetUint32(fd int, req uint) (uint32, error) {
3442+ var value uint32
3443+ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
3444+@@ -109,6 +106,37 @@ func IoctlGetRTCTime(fd int) (*RTCTime, error) {
3445+ return &value, err
3446+ }
3447+
3448++func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) {
3449++ var value RTCWkAlrm
3450++ err := ioctl(fd, RTC_WKALM_RD, uintptr(unsafe.Pointer(&value)))
3451++ return &value, err
3452++}
3453++
3454++// IoctlFileClone performs an FICLONERANGE ioctl operation to clone the range of
3455++// data conveyed in value to the file associated with the file descriptor
3456++// destFd. See the ioctl_ficlonerange(2) man page for details.
3457++func IoctlFileCloneRange(destFd int, value *FileCloneRange) error {
3458++ err := ioctl(destFd, FICLONERANGE, uintptr(unsafe.Pointer(value)))
3459++ runtime.KeepAlive(value)
3460++ return err
3461++}
3462++
3463++// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file
3464++// associated with the file description srcFd to the file associated with the
3465++// file descriptor destFd. See the ioctl_ficlone(2) man page for details.
3466++func IoctlFileClone(destFd, srcFd int) error {
3467++ return ioctl(destFd, FICLONE, uintptr(srcFd))
3468++}
3469++
3470++// IoctlFileClone performs an FIDEDUPERANGE ioctl operation to share the range of
3471++// data conveyed in value with the file associated with the file descriptor
3472++// destFd. See the ioctl_fideduperange(2) man page for details.
3473++func IoctlFileDedupeRange(destFd int, value *FileDedupeRange) error {
3474++ err := ioctl(destFd, FIDEDUPERANGE, uintptr(unsafe.Pointer(value)))
3475++ runtime.KeepAlive(value)
3476++ return err
3477++}
3478++
3479+ //sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error)
3480+
3481+ func Link(oldpath string, newpath string) (err error) {
3482+@@ -133,6 +161,12 @@ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
3483+ return openat(dirfd, path, flags|O_LARGEFILE, mode)
3484+ }
3485+
3486++//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)
3487++
3488++func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) {
3489++ return openat2(dirfd, path, how, SizeofOpenHow)
3490++}
3491++
3492+ //sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
3493+
3494+ func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
3495+@@ -839,6 +873,69 @@ func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {
3496+ return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil
3497+ }
3498+
3499++// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets.
3500++type SockaddrL2TPIP struct {
3501++ Addr [4]byte
3502++ ConnId uint32
3503++ raw RawSockaddrL2TPIP
3504++}
3505++
3506++func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) {
3507++ sa.raw.Family = AF_INET
3508++ sa.raw.Conn_id = sa.ConnId
3509++ for i := 0; i < len(sa.Addr); i++ {
3510++ sa.raw.Addr[i] = sa.Addr[i]
3511++ }
3512++ return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil
3513++}
3514++
3515++// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets.
3516++type SockaddrL2TPIP6 struct {
3517++ Addr [16]byte
3518++ ZoneId uint32
3519++ ConnId uint32
3520++ raw RawSockaddrL2TPIP6
3521++}
3522++
3523++func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) {
3524++ sa.raw.Family = AF_INET6
3525++ sa.raw.Conn_id = sa.ConnId
3526++ sa.raw.Scope_id = sa.ZoneId
3527++ for i := 0; i < len(sa.Addr); i++ {
3528++ sa.raw.Addr[i] = sa.Addr[i]
3529++ }
3530++ return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil
3531++}
3532++
3533++// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets.
3534++type SockaddrIUCV struct {
3535++ UserID string
3536++ Name string
3537++ raw RawSockaddrIUCV
3538++}
3539++
3540++func (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) {
3541++ sa.raw.Family = AF_IUCV
3542++ // These are EBCDIC encoded by the kernel, but we still need to pad them
3543++ // with blanks. Initializing with blanks allows the caller to feed in either
3544++ // a padded or an unpadded string.
3545++ for i := 0; i < 8; i++ {
3546++ sa.raw.Nodeid[i] = ' '
3547++ sa.raw.User_id[i] = ' '
3548++ sa.raw.Name[i] = ' '
3549++ }
3550++ if len(sa.UserID) > 8 || len(sa.Name) > 8 {
3551++ return nil, 0, EINVAL
3552++ }
3553++ for i, b := range []byte(sa.UserID[:]) {
3554++ sa.raw.User_id[i] = int8(b)
3555++ }
3556++ for i, b := range []byte(sa.Name[:]) {
3557++ sa.raw.Name[i] = int8(b)
3558++ }
3559++ return unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil
3560++}
3561++
3562+ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
3563+ switch rsa.Addr.Family {
3564+ case AF_NETLINK:
3565+@@ -889,25 +986,58 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
3566+ return sa, nil
3567+
3568+ case AF_INET:
3569+- pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
3570+- sa := new(SockaddrInet4)
3571+- p := (*[2]byte)(unsafe.Pointer(&pp.Port))
3572+- sa.Port = int(p[0])<<8 + int(p[1])
3573+- for i := 0; i < len(sa.Addr); i++ {
3574+- sa.Addr[i] = pp.Addr[i]
3575++ proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
3576++ if err != nil {
3577++ return nil, err
3578++ }
3579++
3580++ switch proto {
3581++ case IPPROTO_L2TP:
3582++ pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa))
3583++ sa := new(SockaddrL2TPIP)
3584++ sa.ConnId = pp.Conn_id
3585++ for i := 0; i < len(sa.Addr); i++ {
3586++ sa.Addr[i] = pp.Addr[i]
3587++ }
3588++ return sa, nil
3589++ default:
3590++ pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
3591++ sa := new(SockaddrInet4)
3592++ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
3593++ sa.Port = int(p[0])<<8 + int(p[1])
3594++ for i := 0; i < len(sa.Addr); i++ {
3595++ sa.Addr[i] = pp.Addr[i]
3596++ }
3597++ return sa, nil
3598+ }
3599+- return sa, nil
3600+
3601+ case AF_INET6:
3602+- pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
3603+- sa := new(SockaddrInet6)
3604+- p := (*[2]byte)(unsafe.Pointer(&pp.Port))
3605+- sa.Port = int(p[0])<<8 + int(p[1])
3606+- sa.ZoneId = pp.Scope_id
3607+- for i := 0; i < len(sa.Addr); i++ {
3608+- sa.Addr[i] = pp.Addr[i]
3609++ proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
3610++ if err != nil {
3611++ return nil, err
3612++ }
3613++
3614++ switch proto {
3615++ case IPPROTO_L2TP:
3616++ pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa))
3617++ sa := new(SockaddrL2TPIP6)
3618++ sa.ConnId = pp.Conn_id
3619++ sa.ZoneId = pp.Scope_id
3620++ for i := 0; i < len(sa.Addr); i++ {
3621++ sa.Addr[i] = pp.Addr[i]
3622++ }
3623++ return sa, nil
3624++ default:
3625++ pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
3626++ sa := new(SockaddrInet6)
3627++ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
3628++ sa.Port = int(p[0])<<8 + int(p[1])
3629++ sa.ZoneId = pp.Scope_id
3630++ for i := 0; i < len(sa.Addr); i++ {
3631++ sa.Addr[i] = pp.Addr[i]
3632++ }
3633++ return sa, nil
3634+ }
3635+- return sa, nil
3636+
3637+ case AF_VSOCK:
3638+ pp := (*RawSockaddrVM)(unsafe.Pointer(rsa))
3639+@@ -986,6 +1116,38 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
3640+ }
3641+
3642+ return sa, nil
3643++ case AF_IUCV:
3644++ pp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa))
3645++
3646++ var user [8]byte
3647++ var name [8]byte
3648++
3649++ for i := 0; i < 8; i++ {
3650++ user[i] = byte(pp.User_id[i])
3651++ name[i] = byte(pp.Name[i])
3652++ }
3653++
3654++ sa := &SockaddrIUCV{
3655++ UserID: string(user[:]),
3656++ Name: string(name[:]),
3657++ }
3658++ return sa, nil
3659++
3660++ case AF_CAN:
3661++ pp := (*RawSockaddrCAN)(unsafe.Pointer(rsa))
3662++ sa := &SockaddrCAN{
3663++ Ifindex: int(pp.Ifindex),
3664++ }
3665++ rx := (*[4]byte)(unsafe.Pointer(&sa.RxID))
3666++ for i := 0; i < 4; i++ {
3667++ rx[i] = pp.Addr[i]
3668++ }
3669++ tx := (*[4]byte)(unsafe.Pointer(&sa.TxID))
3670++ for i := 0; i < 4; i++ {
3671++ tx[i] = pp.Addr[i+4]
3672++ }
3673++ return sa, nil
3674++
3675+ }
3676+ return nil, EAFNOSUPPORT
3677+ }
3678+@@ -1555,8 +1717,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
3679+ //sys Acct(path string) (err error)
3680+ //sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error)
3681+ //sys Adjtimex(buf *Timex) (state int, err error)
3682+-//sys Capget(hdr *CapUserHeader, data *CapUserData) (err error)
3683+-//sys Capset(hdr *CapUserHeader, data *CapUserData) (err error)
3684++//sysnb Capget(hdr *CapUserHeader, data *CapUserData) (err error)
3685++//sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error)
3686+ //sys Chdir(path string) (err error)
3687+ //sys Chroot(path string) (err error)
3688+ //sys ClockGetres(clockid int32, res *Timespec) (err error)
3689+@@ -1566,6 +1728,15 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
3690+ //sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
3691+ //sys DeleteModule(name string, flags int) (err error)
3692+ //sys Dup(oldfd int) (fd int, err error)
3693++
3694++func Dup2(oldfd, newfd int) error {
3695++ // Android O and newer blocks dup2; riscv and arm64 don't implement dup2.
3696++ if runtime.GOOS == "android" || runtime.GOARCH == "riscv64" || runtime.GOARCH == "arm64" {
3697++ return Dup3(oldfd, newfd, 0)
3698++ }
3699++ return dup2(oldfd, newfd)
3700++}
3701++
3702+ //sys Dup3(oldfd int, newfd int, flags int) (err error)
3703+ //sysnb EpollCreate1(flag int) (fd int, err error)
3704+ //sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error)
3705+@@ -1690,6 +1861,9 @@ func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) {
3706+ //sys Syncfs(fd int) (err error)
3707+ //sysnb Sysinfo(info *Sysinfo_t) (err error)
3708+ //sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error)
3709++//sysnb TimerfdCreate(clockid int, flags int) (fd int, err error)
3710++//sysnb TimerfdGettime(fd int, currValue *ItimerSpec) (err error)
3711++//sysnb TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error)
3712+ //sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error)
3713+ //sysnb Times(tms *Tms) (ticks uintptr, err error)
3714+ //sysnb Umask(mask int) (oldmask int)
3715+@@ -1859,11 +2033,30 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
3716+ return int(n), nil
3717+ }
3718+
3719++func isGroupMember(gid int) bool {
3720++ groups, err := Getgroups()
3721++ if err != nil {
3722++ return false
3723++ }
3724++
3725++ for _, g := range groups {
3726++ if g == gid {
3727++ return true
3728++ }
3729++ }
3730++ return false
3731++}
3732++
3733+ //sys faccessat(dirfd int, path string, mode uint32) (err error)
3734++//sys Faccessat2(dirfd int, path string, mode uint32, flags int) (err error)
3735+
3736+ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
3737+- if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 {
3738+- return EINVAL
3739++ if flags == 0 {
3740++ return faccessat(dirfd, path, mode)
3741++ }
3742++
3743++ if err := Faccessat2(dirfd, path, mode, flags); err != ENOSYS && err != EPERM {
3744++ return err
3745+ }
3746+
3747+ // The Linux kernel faccessat system call does not take any flags.
3748+@@ -1872,8 +2065,8 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
3749+ // Because people naturally expect syscall.Faccessat to act
3750+ // like C faccessat, we do the same.
3751+
3752+- if flags == 0 {
3753+- return faccessat(dirfd, path, mode)
3754++ if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 {
3755++ return EINVAL
3756+ }
3757+
3758+ var st Stat_t
3759+@@ -1916,7 +2109,7 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
3760+ gid = Getgid()
3761+ }
3762+
3763+- if uint32(gid) == st.Gid {
3764++ if uint32(gid) == st.Gid || isGroupMember(gid) {
3765+ fmode = (st.Mode >> 3) & 7
3766+ } else {
3767+ fmode = st.Mode & 7
3768+@@ -2017,6 +2210,18 @@ func Klogset(typ int, arg int) (err error) {
3769+ return nil
3770+ }
3771+
3772++// RemoteIovec is Iovec with the pointer replaced with an integer.
3773++// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer
3774++// refers to a location in a different process' address space, which
3775++// would confuse the Go garbage collector.
3776++type RemoteIovec struct {
3777++ Base uintptr
3778++ Len int
3779++}
3780++
3781++//sys ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV
3782++//sys ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV
3783++
3784+ /*
3785+ * Unimplemented
3786+ */
3787+@@ -2111,7 +2316,6 @@ func Klogset(typ int, arg int) (err error) {
3788+ // TimerGetoverrun
3789+ // TimerGettime
3790+ // TimerSettime
3791+-// Timerfd
3792+ // Tkill (obsolete)
3793+ // Tuxcall
3794+ // Umount2
3795+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
3796+index a8374b6..048d18e 100644
3797+--- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go
3798++++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
3799+@@ -49,7 +49,7 @@ func Pipe2(p []int, flags int) (err error) {
3800+
3801+ // 64-bit file system and 32-bit uid calls
3802+ // (386 default is 32-bit file system and 16-bit uid).
3803+-//sys Dup2(oldfd int, newfd int) (err error)
3804++//sys dup2(oldfd int, newfd int) (err error)
3805+ //sysnb EpollCreate(size int) (fd int, err error)
3806+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
3807+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64
3808+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
3809+index 8ed1d54..72efe86 100644
3810+--- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
3811++++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
3812+@@ -6,7 +6,7 @@
3813+
3814+ package unix
3815+
3816+-//sys Dup2(oldfd int, newfd int) (err error)
3817++//sys dup2(oldfd int, newfd int) (err error)
3818+ //sysnb EpollCreate(size int) (fd int, err error)
3819+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
3820+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
3821+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
3822+index 99ae613..496837b 100644
3823+--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
3824++++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
3825+@@ -7,7 +7,6 @@
3826+ package unix
3827+
3828+ import (
3829+- "syscall"
3830+ "unsafe"
3831+ )
3832+
3833+@@ -49,10 +48,6 @@ func Pipe2(p []int, flags int) (err error) {
3834+ return
3835+ }
3836+
3837+-// Underlying system call writes to newoffset via pointer.
3838+-// Implemented in assembly to avoid allocation.
3839+-func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
3840+-
3841+ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
3842+ newoffset, errno := seek(fd, offset, whence)
3843+ if errno != 0 {
3844+@@ -80,7 +75,7 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
3845+
3846+ // 64-bit file system and 32-bit uid calls
3847+ // (16-bit uid calls are not always supported in newer kernels)
3848+-//sys Dup2(oldfd int, newfd int) (err error)
3849++//sys dup2(oldfd int, newfd int) (err error)
3850+ //sysnb EpollCreate(size int) (fd int, err error)
3851+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
3852+ //sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
3853+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
3854+index 807a0b2..c6de6b9 100644
3855+--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
3856++++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
3857+@@ -25,7 +25,7 @@ func EpollCreate(size int) (fd int, err error) {
3858+ //sysnb Getegid() (egid int)
3859+ //sysnb Geteuid() (euid int)
3860+ //sysnb Getgid() (gid int)
3861+-//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
3862++//sysnb getrlimit(resource int, rlim *Rlimit) (err error)
3863+ //sysnb Getuid() (uid int)
3864+ //sys Listen(s int, n int) (err error)
3865+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
3866+@@ -47,7 +47,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
3867+ //sysnb Setregid(rgid int, egid int) (err error)
3868+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
3869+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
3870+-//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
3871++//sysnb setrlimit(resource int, rlim *Rlimit) (err error)
3872+ //sysnb Setreuid(ruid int, euid int) (err error)
3873+ //sys Shutdown(fd int, how int) (err error)
3874+ //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
3875+@@ -168,6 +168,24 @@ func Pipe2(p []int, flags int) (err error) {
3876+ return
3877+ }
3878+
3879++// Getrlimit prefers the prlimit64 system call. See issue 38604.
3880++func Getrlimit(resource int, rlim *Rlimit) error {
3881++ err := prlimit(0, resource, nil, rlim)
3882++ if err != ENOSYS {
3883++ return err
3884++ }
3885++ return getrlimit(resource, rlim)
3886++}
3887++
3888++// Setrlimit prefers the prlimit64 system call. See issue 38604.
3889++func Setrlimit(resource int, rlim *Rlimit) error {
3890++ err := prlimit(0, resource, rlim, nil)
3891++ if err != ENOSYS {
3892++ return err
3893++ }
3894++ return setrlimit(resource, rlim)
3895++}
3896++
3897+ func (r *PtraceRegs) PC() uint64 { return r.Pc }
3898+
3899+ func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }
3900+@@ -192,9 +210,9 @@ func InotifyInit() (fd int, err error) {
3901+ return InotifyInit1(0)
3902+ }
3903+
3904+-func Dup2(oldfd int, newfd int) (err error) {
3905+- return Dup3(oldfd, newfd, 0)
3906+-}
3907++// dup2 exists because func Dup3 in syscall_linux.go references
3908++// it in an unreachable path. dup2 isn't available on arm64.
3909++func dup2(oldfd int, newfd int) error
3910+
3911+ func Pause() error {
3912+ _, err := ppoll(nil, 0, nil, nil)
3913+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go
3914+new file mode 100644
3915+index 0000000..8c514c9
3916+--- /dev/null
3917++++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go
3918+@@ -0,0 +1,13 @@
3919++// Copyright 2009 The Go Authors. All rights reserved.
3920++// Use of this source code is governed by a BSD-style
3921++// license that can be found in the LICENSE file.
3922++
3923++// +build arm,!gccgo,linux
3924++
3925++package unix
3926++
3927++import "syscall"
3928++
3929++// Underlying system call writes to newoffset via pointer.
3930++// Implemented in assembly to avoid allocation.
3931++func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
3932+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
3933+index 85a872d..f028747 100644
3934+--- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
3935++++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
3936+@@ -7,7 +7,7 @@
3937+
3938+ package unix
3939+
3940+-//sys Dup2(oldfd int, newfd int) (err error)
3941++//sys dup2(oldfd int, newfd int) (err error)
3942+ //sysnb EpollCreate(size int) (fd int, err error)
3943+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
3944+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
3945+@@ -216,6 +216,10 @@ func (cmsg *Cmsghdr) SetLen(length int) {
3946+ cmsg.Len = uint64(length)
3947+ }
3948+
3949++func InotifyInit() (fd int, err error) {
3950++ return InotifyInit1(0)
3951++}
3952++
3953+ //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
3954+
3955+ func Poll(fds []PollFd, timeout int) (n int, err error) {
3956+@@ -224,8 +228,3 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
3957+ }
3958+ return poll(&fds[0], len(fds), timeout)
3959+ }
3960+-
3961+-func InotifyInit() (fd int, err error) {
3962+- return InotifyInit1(0)
3963+-}
3964+-
3965+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
3966+index e286c6b..c113281 100644
3967+--- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
3968++++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
3969+@@ -14,7 +14,7 @@ import (
3970+
3971+ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
3972+
3973+-//sys Dup2(oldfd int, newfd int) (err error)
3974++//sys dup2(oldfd int, newfd int) (err error)
3975+ //sysnb EpollCreate(size int) (fd int, err error)
3976+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
3977+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
3978+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
3979+index ca0345a..3493744 100644
3980+--- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
3981++++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
3982+@@ -7,7 +7,7 @@
3983+
3984+ package unix
3985+
3986+-//sys Dup2(oldfd int, newfd int) (err error)
3987++//sys dup2(oldfd int, newfd int) (err error)
3988+ //sysnb EpollCreate(size int) (fd int, err error)
3989+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
3990+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
3991+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
3992+index abdabba..b0b1505 100644
3993+--- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
3994++++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
3995+@@ -191,10 +191,6 @@ func InotifyInit() (fd int, err error) {
3996+ return InotifyInit1(0)
3997+ }
3998+
3999+-func Dup2(oldfd int, newfd int) (err error) {
4000+- return Dup3(oldfd, newfd, 0)
4001+-}
4002+-
4003+ func Pause() error {
4004+ _, err := ppoll(nil, 0, nil, nil)
4005+ return err
4006+@@ -228,3 +224,7 @@ func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error
4007+ }
4008+ return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
4009+ }
4010++
4011++// dup2 exists because func Dup3 in syscall_linux.go references
4012++// it in an unreachable path. dup2 isn't available on arm64.
4013++func dup2(oldfd int, newfd int) error
4014+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
4015+index 533e930..2363f74 100644
4016+--- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
4017++++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
4018+@@ -10,7 +10,7 @@ import (
4019+ "unsafe"
4020+ )
4021+
4022+-//sys Dup2(oldfd int, newfd int) (err error)
4023++//sys dup2(oldfd int, newfd int) (err error)
4024+ //sysnb EpollCreate(size int) (fd int, err error)
4025+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
4026+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
4027+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
4028+index d890a22..d389f15 100644
4029+--- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
4030++++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
4031+@@ -8,7 +8,7 @@ package unix
4032+
4033+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
4034+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
4035+-//sys Dup2(oldfd int, newfd int) (err error)
4036++//sys dup2(oldfd int, newfd int) (err error)
4037+ //sys Fchown(fd int, uid int, gid int) (err error)
4038+ //sys Fstat(fd int, stat *Stat_t) (err error)
4039+ //sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
4040+diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
4041+index 45b50a6..dbd5e03 100644
4042+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go
4043++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
4044+@@ -141,23 +141,8 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
4045+ return
4046+ }
4047+
4048+-const ImplementsGetwd = true
4049+-
4050+ //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
4051+
4052+-func Getwd() (string, error) {
4053+- var buf [PathMax]byte
4054+- _, err := Getcwd(buf[0:])
4055+- if err != nil {
4056+- return "", err
4057+- }
4058+- n := clen(buf[:])
4059+- if n < 1 {
4060+- return "", EINVAL
4061+- }
4062+- return string(buf[:n]), nil
4063+-}
4064+-
4065+ // TODO
4066+ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
4067+ return -1, ENOSYS
4068+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
4069+index a266e92..2c1f46e 100644
4070+--- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go
4071++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
4072+@@ -114,23 +114,8 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
4073+ return
4074+ }
4075+
4076+-const ImplementsGetwd = true
4077+-
4078+ //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
4079+
4080+-func Getwd() (string, error) {
4081+- var buf [PathMax]byte
4082+- _, err := Getcwd(buf[0:])
4083+- if err != nil {
4084+- return "", err
4085+- }
4086+- n := clen(buf[:])
4087+- if n < 1 {
4088+- return "", EINVAL
4089+- }
4090+- return string(buf[:n]), nil
4091+-}
4092+-
4093+ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
4094+ if raceenabled {
4095+ raceReleaseMerge(unsafe.Pointer(&ioSync))
4096+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go
4097+new file mode 100644
4098+index 0000000..30f2853
4099+--- /dev/null
4100++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go
4101+@@ -0,0 +1,35 @@
4102++// Copyright 2019 The Go Authors. All rights reserved.
4103++// Use of this source code is governed by a BSD-style
4104++// license that can be found in the LICENSE file.
4105++
4106++package unix
4107++
4108++func setTimespec(sec, nsec int64) Timespec {
4109++ return Timespec{Sec: sec, Nsec: nsec}
4110++}
4111++
4112++func setTimeval(sec, usec int64) Timeval {
4113++ return Timeval{Sec: sec, Usec: usec}
4114++}
4115++
4116++func SetKevent(k *Kevent_t, fd, mode, flags int) {
4117++ k.Ident = uint64(fd)
4118++ k.Filter = int16(mode)
4119++ k.Flags = uint16(flags)
4120++}
4121++
4122++func (iov *Iovec) SetLen(length int) {
4123++ iov.Len = uint64(length)
4124++}
4125++
4126++func (msghdr *Msghdr) SetControllen(length int) {
4127++ msghdr.Controllen = uint32(length)
4128++}
4129++
4130++func (cmsg *Cmsghdr) SetLen(length int) {
4131++ cmsg.Len = uint32(length)
4132++}
4133++
4134++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
4135++// of OpenBSD the syscall is called sysctl instead of __sysctl.
4136++const SYS___SYSCTL = SYS_SYSCTL
4137+diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go
4138+index 3de3756..400ba9f 100644
4139+--- a/vendor/golang.org/x/sys/unix/syscall_unix.go
4140++++ b/vendor/golang.org/x/sys/unix/syscall_unix.go
4141+@@ -12,6 +12,8 @@ import (
4142+ "sync"
4143+ "syscall"
4144+ "unsafe"
4145++
4146++ "golang.org/x/sys/internal/unsafeheader"
4147+ )
4148+
4149+ var (
4150+@@ -76,7 +78,7 @@ func SignalName(s syscall.Signal) string {
4151+ // The signal name should start with "SIG".
4152+ func SignalNum(s string) syscall.Signal {
4153+ signalNameMapOnce.Do(func() {
4154+- signalNameMap = make(map[string]syscall.Signal)
4155++ signalNameMap = make(map[string]syscall.Signal, len(signalList))
4156+ for _, signal := range signalList {
4157+ signalNameMap[signal.name] = signal.num
4158+ }
4159+@@ -113,15 +115,12 @@ func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (d
4160+ return nil, errno
4161+ }
4162+
4163+- // Slice memory layout
4164+- var sl = struct {
4165+- addr uintptr
4166+- len int
4167+- cap int
4168+- }{addr, length, length}
4169+-
4170+- // Use unsafe to turn sl into a []byte.
4171+- b := *(*[]byte)(unsafe.Pointer(&sl))
4172++ // Use unsafe to convert addr into a []byte.
4173++ var b []byte
4174++ hdr := (*unsafeheader.Slice)(unsafe.Pointer(&b))
4175++ hdr.Data = unsafe.Pointer(addr)
4176++ hdr.Cap = length
4177++ hdr.Len = length
4178+
4179+ // Register mapping in m and return it.
4180+ p := &b[cap(b)-1]
4181+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
4182+index 6217cdb..6f33359 100644
4183+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
4184++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
4185+@@ -232,6 +232,8 @@ const (
4186+ CLOCK_THREAD_CPUTIME_ID = 0x10
4187+ CLOCK_UPTIME_RAW = 0x8
4188+ CLOCK_UPTIME_RAW_APPROX = 0x9
4189++ CLONE_NOFOLLOW = 0x1
4190++ CLONE_NOOWNERCOPY = 0x2
4191+ CR0 = 0x0
4192+ CR1 = 0x1000
4193+ CR2 = 0x2000
4194+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
4195+index e3ff2ee..db767eb 100644
4196+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
4197++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
4198+@@ -232,6 +232,8 @@ const (
4199+ CLOCK_THREAD_CPUTIME_ID = 0x10
4200+ CLOCK_UPTIME_RAW = 0x8
4201+ CLOCK_UPTIME_RAW_APPROX = 0x9
4202++ CLONE_NOFOLLOW = 0x1
4203++ CLONE_NOOWNERCOPY = 0x2
4204+ CR0 = 0x0
4205+ CR1 = 0x1000
4206+ CR2 = 0x2000
4207+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
4208+index 3e41757..ddc5d00 100644
4209+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
4210++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
4211+@@ -232,6 +232,8 @@ const (
4212+ CLOCK_THREAD_CPUTIME_ID = 0x10
4213+ CLOCK_UPTIME_RAW = 0x8
4214+ CLOCK_UPTIME_RAW_APPROX = 0x9
4215++ CLONE_NOFOLLOW = 0x1
4216++ CLONE_NOOWNERCOPY = 0x2
4217+ CR0 = 0x0
4218+ CR1 = 0x1000
4219+ CR2 = 0x2000
4220+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
4221+index cbd8ed1..0614d26 100644
4222+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
4223++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
4224+@@ -232,6 +232,8 @@ const (
4225+ CLOCK_THREAD_CPUTIME_ID = 0x10
4226+ CLOCK_UPTIME_RAW = 0x8
4227+ CLOCK_UPTIME_RAW_APPROX = 0x9
4228++ CLONE_NOFOLLOW = 0x1
4229++ CLONE_NOOWNERCOPY = 0x2
4230+ CR0 = 0x0
4231+ CR1 = 0x1000
4232+ CR2 = 0x2000
4233+diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
4234+index b72544f..3689c80 100644
4235+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
4236++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
4237+@@ -339,6 +339,12 @@ const (
4238+ CLOCK_UPTIME_FAST = 0x8
4239+ CLOCK_UPTIME_PRECISE = 0x7
4240+ CLOCK_VIRTUAL = 0x1
4241++ CPUSTATES = 0x5
4242++ CP_IDLE = 0x4
4243++ CP_INTR = 0x3
4244++ CP_NICE = 0x1
4245++ CP_SYS = 0x2
4246++ CP_USER = 0x0
4247+ CREAD = 0x800
4248+ CRTSCTS = 0x30000
4249+ CS5 = 0x0
4250+@@ -355,6 +361,22 @@ const (
4251+ CTL_KERN = 0x1
4252+ CTL_MAXNAME = 0x18
4253+ CTL_NET = 0x4
4254++ DIOCGATTR = 0xc144648e
4255++ DIOCGDELETE = 0x80106488
4256++ DIOCGFLUSH = 0x20006487
4257++ DIOCGFRONTSTUFF = 0x40086486
4258++ DIOCGFWHEADS = 0x40046483
4259++ DIOCGFWSECTORS = 0x40046482
4260++ DIOCGIDENT = 0x41006489
4261++ DIOCGMEDIASIZE = 0x40086481
4262++ DIOCGPHYSPATH = 0x4400648d
4263++ DIOCGPROVIDERNAME = 0x4400648a
4264++ DIOCGSECTORSIZE = 0x40046480
4265++ DIOCGSTRIPEOFFSET = 0x4008648c
4266++ DIOCGSTRIPESIZE = 0x4008648b
4267++ DIOCSKERNELDUMP = 0x804c6490
4268++ DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
4269++ DIOCZONECMD = 0xc06c648f
4270+ DLT_A429 = 0xb8
4271+ DLT_A653_ICM = 0xb9
4272+ DLT_AIRONET_HEADER = 0x78
4273+@@ -379,11 +401,14 @@ const (
4274+ DLT_CHAOS = 0x5
4275+ DLT_CHDLC = 0x68
4276+ DLT_CISCO_IOS = 0x76
4277++ DLT_CLASS_NETBSD_RAWAF = 0x2240000
4278+ DLT_C_HDLC = 0x68
4279+ DLT_C_HDLC_WITH_DIR = 0xcd
4280+ DLT_DBUS = 0xe7
4281+ DLT_DECT = 0xdd
4282++ DLT_DISPLAYPORT_AUX = 0x113
4283+ DLT_DOCSIS = 0x8f
4284++ DLT_DOCSIS31_XRA31 = 0x111
4285+ DLT_DVB_CI = 0xeb
4286+ DLT_ECONET = 0x73
4287+ DLT_EN10MB = 0x1
4288+@@ -393,6 +418,7 @@ const (
4289+ DLT_ERF = 0xc5
4290+ DLT_ERF_ETH = 0xaf
4291+ DLT_ERF_POS = 0xb0
4292++ DLT_ETHERNET_MPACKET = 0x112
4293+ DLT_FC_2 = 0xe0
4294+ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
4295+ DLT_FDDI = 0xa
4296+@@ -406,7 +432,6 @@ const (
4297+ DLT_GPRS_LLC = 0xa9
4298+ DLT_GSMTAP_ABIS = 0xda
4299+ DLT_GSMTAP_UM = 0xd9
4300+- DLT_HHDLC = 0x79
4301+ DLT_IBM_SN = 0x92
4302+ DLT_IBM_SP = 0x91
4303+ DLT_IEEE802 = 0x6
4304+@@ -429,6 +454,7 @@ const (
4305+ DLT_IPV4 = 0xe4
4306+ DLT_IPV6 = 0xe5
4307+ DLT_IP_OVER_FC = 0x7a
4308++ DLT_ISO_14443 = 0x108
4309+ DLT_JUNIPER_ATM1 = 0x89
4310+ DLT_JUNIPER_ATM2 = 0x87
4311+ DLT_JUNIPER_ATM_CEMIC = 0xee
4312+@@ -461,8 +487,9 @@ const (
4313+ DLT_LINUX_PPP_WITHDIRECTION = 0xa6
4314+ DLT_LINUX_SLL = 0x71
4315+ DLT_LOOP = 0x6c
4316++ DLT_LORATAP = 0x10e
4317+ DLT_LTALK = 0x72
4318+- DLT_MATCHING_MAX = 0x104
4319++ DLT_MATCHING_MAX = 0x113
4320+ DLT_MATCHING_MIN = 0x68
4321+ DLT_MFR = 0xb6
4322+ DLT_MOST = 0xd3
4323+@@ -478,14 +505,16 @@ const (
4324+ DLT_NFC_LLCP = 0xf5
4325+ DLT_NFLOG = 0xef
4326+ DLT_NG40 = 0xf4
4327++ DLT_NORDIC_BLE = 0x110
4328+ DLT_NULL = 0x0
4329++ DLT_OPENFLOW = 0x10b
4330+ DLT_PCI_EXP = 0x7d
4331+ DLT_PFLOG = 0x75
4332+ DLT_PFSYNC = 0x79
4333+ DLT_PKTAP = 0x102
4334+ DLT_PPI = 0xc0
4335+ DLT_PPP = 0x9
4336+- DLT_PPP_BSDOS = 0x10
4337++ DLT_PPP_BSDOS = 0xe
4338+ DLT_PPP_ETHER = 0x33
4339+ DLT_PPP_PPPD = 0xa6
4340+ DLT_PPP_SERIAL = 0x32
4341+@@ -496,19 +525,25 @@ const (
4342+ DLT_PRONET = 0x4
4343+ DLT_RAIF1 = 0xc6
4344+ DLT_RAW = 0xc
4345++ DLT_RDS = 0x109
4346++ DLT_REDBACK_SMARTEDGE = 0x20
4347+ DLT_RIO = 0x7c
4348+ DLT_RTAC_SERIAL = 0xfa
4349+ DLT_SCCP = 0x8e
4350+ DLT_SCTP = 0xf8
4351++ DLT_SDLC = 0x10c
4352+ DLT_SITA = 0xc4
4353+ DLT_SLIP = 0x8
4354+- DLT_SLIP_BSDOS = 0xf
4355++ DLT_SLIP_BSDOS = 0xd
4356+ DLT_STANAG_5066_D_PDU = 0xed
4357+ DLT_SUNATM = 0x7b
4358+ DLT_SYMANTEC_FIREWALL = 0x63
4359++ DLT_TI_LLN_SNIFFER = 0x10d
4360+ DLT_TZSP = 0x80
4361+ DLT_USB = 0xba
4362+ DLT_USBPCAP = 0xf9
4363++ DLT_USB_DARWIN = 0x10a
4364++ DLT_USB_FREEBSD = 0xba
4365+ DLT_USB_LINUX = 0xbd
4366+ DLT_USB_LINUX_MMAPPED = 0xdc
4367+ DLT_USER0 = 0x93
4368+@@ -527,10 +562,14 @@ const (
4369+ DLT_USER7 = 0x9a
4370+ DLT_USER8 = 0x9b
4371+ DLT_USER9 = 0x9c
4372++ DLT_VSOCK = 0x10f
4373++ DLT_WATTSTOPPER_DLM = 0x107
4374+ DLT_WIHART = 0xdf
4375+ DLT_WIRESHARK_UPPER_PDU = 0xfc
4376+ DLT_X2E_SERIAL = 0xd5
4377+ DLT_X2E_XORAYA = 0xd6
4378++ DLT_ZWAVE_R1_R2 = 0x105
4379++ DLT_ZWAVE_R3 = 0x106
4380+ DT_BLK = 0x6
4381+ DT_CHR = 0x2
4382+ DT_DIR = 0x4
4383+@@ -548,6 +587,7 @@ const (
4384+ ECHONL = 0x10
4385+ ECHOPRT = 0x20
4386+ EVFILT_AIO = -0x3
4387++ EVFILT_EMPTY = -0xd
4388+ EVFILT_FS = -0x9
4389+ EVFILT_LIO = -0xa
4390+ EVFILT_PROC = -0x5
4391+@@ -555,11 +595,12 @@ const (
4392+ EVFILT_READ = -0x1
4393+ EVFILT_SENDFILE = -0xc
4394+ EVFILT_SIGNAL = -0x6
4395+- EVFILT_SYSCOUNT = 0xc
4396++ EVFILT_SYSCOUNT = 0xd
4397+ EVFILT_TIMER = -0x7
4398+ EVFILT_USER = -0xb
4399+ EVFILT_VNODE = -0x4
4400+ EVFILT_WRITE = -0x2
4401++ EVNAMEMAP_NAME_SIZE = 0x40
4402+ EV_ADD = 0x1
4403+ EV_CLEAR = 0x20
4404+ EV_DELETE = 0x2
4405+@@ -576,6 +617,7 @@ const (
4406+ EV_RECEIPT = 0x40
4407+ EV_SYSFLAGS = 0xf000
4408+ EXTA = 0x4b00
4409++ EXTATTR_MAXNAMELEN = 0xff
4410+ EXTATTR_NAMESPACE_EMPTY = 0x0
4411+ EXTATTR_NAMESPACE_SYSTEM = 0x2
4412+ EXTATTR_NAMESPACE_USER = 0x1
4413+@@ -617,6 +659,7 @@ const (
4414+ IEXTEN = 0x400
4415+ IFAN_ARRIVAL = 0x0
4416+ IFAN_DEPARTURE = 0x1
4417++ IFCAP_WOL_MAGIC = 0x2000
4418+ IFF_ALLMULTI = 0x200
4419+ IFF_ALTPHYS = 0x4000
4420+ IFF_BROADCAST = 0x2
4421+@@ -633,6 +676,7 @@ const (
4422+ IFF_MONITOR = 0x40000
4423+ IFF_MULTICAST = 0x8000
4424+ IFF_NOARP = 0x80
4425++ IFF_NOGROUP = 0x800000
4426+ IFF_OACTIVE = 0x400
4427+ IFF_POINTOPOINT = 0x10
4428+ IFF_PPROMISC = 0x20000
4429+@@ -807,6 +851,7 @@ const (
4430+ IPV6_DSTOPTS = 0x32
4431+ IPV6_FLOWID = 0x43
4432+ IPV6_FLOWINFO_MASK = 0xffffff0f
4433++ IPV6_FLOWLABEL_LEN = 0x14
4434+ IPV6_FLOWLABEL_MASK = 0xffff0f00
4435+ IPV6_FLOWTYPE = 0x44
4436+ IPV6_FRAGTTL = 0x78
4437+@@ -827,13 +872,13 @@ const (
4438+ IPV6_MAX_GROUP_SRC_FILTER = 0x200
4439+ IPV6_MAX_MEMBERSHIPS = 0xfff
4440+ IPV6_MAX_SOCK_SRC_FILTER = 0x80
4441+- IPV6_MIN_MEMBERSHIPS = 0x1f
4442+ IPV6_MMTU = 0x500
4443+ IPV6_MSFILTER = 0x4a
4444+ IPV6_MULTICAST_HOPS = 0xa
4445+ IPV6_MULTICAST_IF = 0x9
4446+ IPV6_MULTICAST_LOOP = 0xb
4447+ IPV6_NEXTHOP = 0x30
4448++ IPV6_ORIGDSTADDR = 0x48
4449+ IPV6_PATHMTU = 0x2c
4450+ IPV6_PKTINFO = 0x2e
4451+ IPV6_PORTRANGE = 0xe
4452+@@ -845,6 +890,7 @@ const (
4453+ IPV6_RECVFLOWID = 0x46
4454+ IPV6_RECVHOPLIMIT = 0x25
4455+ IPV6_RECVHOPOPTS = 0x27
4456++ IPV6_RECVORIGDSTADDR = 0x48
4457+ IPV6_RECVPATHMTU = 0x2b
4458+ IPV6_RECVPKTINFO = 0x24
4459+ IPV6_RECVRSSBUCKETID = 0x47
4460+@@ -905,10 +951,8 @@ const (
4461+ IP_MAX_MEMBERSHIPS = 0xfff
4462+ IP_MAX_SOCK_MUTE_FILTER = 0x80
4463+ IP_MAX_SOCK_SRC_FILTER = 0x80
4464+- IP_MAX_SOURCE_FILTER = 0x400
4465+ IP_MF = 0x2000
4466+ IP_MINTTL = 0x42
4467+- IP_MIN_MEMBERSHIPS = 0x1f
4468+ IP_MSFILTER = 0x4a
4469+ IP_MSS = 0x240
4470+ IP_MULTICAST_IF = 0x9
4471+@@ -918,6 +962,7 @@ const (
4472+ IP_OFFMASK = 0x1fff
4473+ IP_ONESBCAST = 0x17
4474+ IP_OPTIONS = 0x1
4475++ IP_ORIGDSTADDR = 0x1b
4476+ IP_PORTRANGE = 0x13
4477+ IP_PORTRANGE_DEFAULT = 0x0
4478+ IP_PORTRANGE_HIGH = 0x1
4479+@@ -926,6 +971,7 @@ const (
4480+ IP_RECVFLOWID = 0x5d
4481+ IP_RECVIF = 0x14
4482+ IP_RECVOPTS = 0x5
4483++ IP_RECVORIGDSTADDR = 0x1b
4484+ IP_RECVRETOPTS = 0x6
4485+ IP_RECVRSSBUCKETID = 0x5e
4486+ IP_RECVTOS = 0x44
4487+@@ -975,6 +1021,7 @@ const (
4488+ MAP_EXCL = 0x4000
4489+ MAP_FILE = 0x0
4490+ MAP_FIXED = 0x10
4491++ MAP_GUARD = 0x2000
4492+ MAP_HASSEMAPHORE = 0x200
4493+ MAP_NOCORE = 0x20000
4494+ MAP_NOSYNC = 0x800
4495+@@ -986,6 +1033,15 @@ const (
4496+ MAP_RESERVED0100 = 0x100
4497+ MAP_SHARED = 0x1
4498+ MAP_STACK = 0x400
4499++ MCAST_BLOCK_SOURCE = 0x54
4500++ MCAST_EXCLUDE = 0x2
4501++ MCAST_INCLUDE = 0x1
4502++ MCAST_JOIN_GROUP = 0x50
4503++ MCAST_JOIN_SOURCE_GROUP = 0x52
4504++ MCAST_LEAVE_GROUP = 0x51
4505++ MCAST_LEAVE_SOURCE_GROUP = 0x53
4506++ MCAST_UNBLOCK_SOURCE = 0x55
4507++ MCAST_UNDEFINED = 0x0
4508+ MCL_CURRENT = 0x1
4509+ MCL_FUTURE = 0x2
4510+ MNT_ACLS = 0x8000000
4511+@@ -1026,10 +1082,12 @@ const (
4512+ MNT_SUSPEND = 0x4
4513+ MNT_SYNCHRONOUS = 0x2
4514+ MNT_UNION = 0x20
4515++ MNT_UNTRUSTED = 0x800000000
4516+ MNT_UPDATE = 0x10000
4517+- MNT_UPDATEMASK = 0x2d8d0807e
4518++ MNT_UPDATEMASK = 0xad8d0807e
4519+ MNT_USER = 0x8000
4520+- MNT_VISFLAGMASK = 0x3fef0ffff
4521++ MNT_VERIFIED = 0x400000000
4522++ MNT_VISFLAGMASK = 0xffef0ffff
4523+ MNT_WAIT = 0x1
4524+ MSG_CMSG_CLOEXEC = 0x40000
4525+ MSG_COMPAT = 0x8000
4526+@@ -1058,6 +1116,7 @@ const (
4527+ NFDBITS = 0x20
4528+ NOFLSH = 0x80000000
4529+ NOKERNINFO = 0x2000000
4530++ NOTE_ABSTIME = 0x10
4531+ NOTE_ATTRIB = 0x8
4532+ NOTE_CHILD = 0x4
4533+ NOTE_CLOSE = 0x100
4534+@@ -1212,7 +1271,6 @@ const (
4535+ RTV_WEIGHT = 0x100
4536+ RT_ALL_FIBS = -0x1
4537+ RT_BLACKHOLE = 0x40
4538+- RT_CACHING_CONTEXT = 0x1
4539+ RT_DEFAULT_FIB = 0x0
4540+ RT_HAS_GW = 0x80
4541+ RT_HAS_HEADER = 0x10
4542+@@ -1222,15 +1280,17 @@ const (
4543+ RT_LLE_CACHE = 0x100
4544+ RT_MAY_LOOP = 0x8
4545+ RT_MAY_LOOP_BIT = 0x3
4546+- RT_NORTREF = 0x2
4547+ RT_REJECT = 0x20
4548+ RUSAGE_CHILDREN = -0x1
4549+ RUSAGE_SELF = 0x0
4550+ RUSAGE_THREAD = 0x1
4551+ SCM_BINTIME = 0x4
4552+ SCM_CREDS = 0x3
4553++ SCM_MONOTONIC = 0x6
4554++ SCM_REALTIME = 0x5
4555+ SCM_RIGHTS = 0x1
4556+ SCM_TIMESTAMP = 0x2
4557++ SCM_TIME_INFO = 0x7
4558+ SHUT_RD = 0x0
4559+ SHUT_RDWR = 0x2
4560+ SHUT_WR = 0x1
4561+@@ -1246,6 +1306,7 @@ const (
4562+ SIOCGETSGCNT = 0xc0147210
4563+ SIOCGETVIFCNT = 0xc014720f
4564+ SIOCGHIWAT = 0x40047301
4565++ SIOCGHWADDR = 0xc020693e
4566+ SIOCGI2C = 0xc020693d
4567+ SIOCGIFADDR = 0xc0206921
4568+ SIOCGIFBRDADDR = 0xc0206923
4569+@@ -1267,8 +1328,11 @@ const (
4570+ SIOCGIFPDSTADDR = 0xc0206948
4571+ SIOCGIFPHYS = 0xc0206935
4572+ SIOCGIFPSRCADDR = 0xc0206947
4573++ SIOCGIFRSSHASH = 0xc0186997
4574++ SIOCGIFRSSKEY = 0xc0946996
4575+ SIOCGIFSTATUS = 0xc331693b
4576+ SIOCGIFXMEDIA = 0xc028698b
4577++ SIOCGLANPCP = 0xc0206998
4578+ SIOCGLOWAT = 0x40047303
4579+ SIOCGPGRP = 0x40047309
4580+ SIOCGPRIVATE_0 = 0xc0206950
4581+@@ -1299,6 +1363,7 @@ const (
4582+ SIOCSIFPHYS = 0x80206936
4583+ SIOCSIFRVNET = 0xc020695b
4584+ SIOCSIFVNET = 0xc020695a
4585++ SIOCSLANPCP = 0x80206999
4586+ SIOCSLOWAT = 0x80047302
4587+ SIOCSPGRP = 0x80047308
4588+ SIOCSTUNFIB = 0x8020695f
4589+@@ -1317,6 +1382,7 @@ const (
4590+ SO_BINTIME = 0x2000
4591+ SO_BROADCAST = 0x20
4592+ SO_DEBUG = 0x1
4593++ SO_DOMAIN = 0x1019
4594+ SO_DONTROUTE = 0x10
4595+ SO_ERROR = 0x1007
4596+ SO_KEEPALIVE = 0x8
4597+@@ -1325,6 +1391,7 @@ const (
4598+ SO_LISTENINCQLEN = 0x1013
4599+ SO_LISTENQLEN = 0x1012
4600+ SO_LISTENQLIMIT = 0x1011
4601++ SO_MAX_PACING_RATE = 0x1018
4602+ SO_NOSIGPIPE = 0x800
4603+ SO_NO_DDP = 0x8000
4604+ SO_NO_OFFLOAD = 0x4000
4605+@@ -1337,11 +1404,19 @@ const (
4606+ SO_RCVTIMEO = 0x1006
4607+ SO_REUSEADDR = 0x4
4608+ SO_REUSEPORT = 0x200
4609++ SO_REUSEPORT_LB = 0x10000
4610+ SO_SETFIB = 0x1014
4611+ SO_SNDBUF = 0x1001
4612+ SO_SNDLOWAT = 0x1003
4613+ SO_SNDTIMEO = 0x1005
4614+ SO_TIMESTAMP = 0x400
4615++ SO_TS_BINTIME = 0x1
4616++ SO_TS_CLOCK = 0x1017
4617++ SO_TS_CLOCK_MAX = 0x3
4618++ SO_TS_DEFAULT = 0x0
4619++ SO_TS_MONOTONIC = 0x3
4620++ SO_TS_REALTIME = 0x2
4621++ SO_TS_REALTIME_MICRO = 0x0
4622+ SO_TYPE = 0x1008
4623+ SO_USELOOPBACK = 0x40
4624+ SO_USER_COOKIE = 0x1015
4625+@@ -1385,10 +1460,45 @@ const (
4626+ TCOFLUSH = 0x2
4627+ TCOOFF = 0x1
4628+ TCOON = 0x2
4629++ TCP_BBR_ACK_COMP_ALG = 0x448
4630++ TCP_BBR_DRAIN_INC_EXTRA = 0x43c
4631++ TCP_BBR_DRAIN_PG = 0x42e
4632++ TCP_BBR_EXTRA_GAIN = 0x449
4633++ TCP_BBR_IWINTSO = 0x42b
4634++ TCP_BBR_LOWGAIN_FD = 0x436
4635++ TCP_BBR_LOWGAIN_HALF = 0x435
4636++ TCP_BBR_LOWGAIN_THRESH = 0x434
4637++ TCP_BBR_MAX_RTO = 0x439
4638++ TCP_BBR_MIN_RTO = 0x438
4639++ TCP_BBR_ONE_RETRAN = 0x431
4640++ TCP_BBR_PACE_CROSS = 0x442
4641++ TCP_BBR_PACE_DEL_TAR = 0x43f
4642++ TCP_BBR_PACE_PER_SEC = 0x43e
4643++ TCP_BBR_PACE_SEG_MAX = 0x440
4644++ TCP_BBR_PACE_SEG_MIN = 0x441
4645++ TCP_BBR_PROBE_RTT_GAIN = 0x44d
4646++ TCP_BBR_PROBE_RTT_INT = 0x430
4647++ TCP_BBR_PROBE_RTT_LEN = 0x44e
4648++ TCP_BBR_RACK_RTT_USE = 0x44a
4649++ TCP_BBR_RECFORCE = 0x42c
4650++ TCP_BBR_REC_OVER_HPTS = 0x43a
4651++ TCP_BBR_RETRAN_WTSO = 0x44b
4652++ TCP_BBR_RWND_IS_APP = 0x42f
4653++ TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
4654++ TCP_BBR_STARTUP_LOSS_EXIT = 0x432
4655++ TCP_BBR_STARTUP_PG = 0x42d
4656++ TCP_BBR_UNLIMITED = 0x43b
4657++ TCP_BBR_USEDEL_RATE = 0x437
4658++ TCP_BBR_USE_LOWGAIN = 0x433
4659+ TCP_CA_NAME_MAX = 0x10
4660+ TCP_CCALGOOPT = 0x41
4661+ TCP_CONGESTION = 0x40
4662++ TCP_DATA_AFTER_CLOSE = 0x44c
4663++ TCP_DELACK = 0x48
4664+ TCP_FASTOPEN = 0x401
4665++ TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10
4666++ TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4
4667++ TCP_FASTOPEN_PSK_LEN = 0x10
4668+ TCP_FUNCTION_BLK = 0x2000
4669+ TCP_FUNCTION_NAME_LEN_MAX = 0x20
4670+ TCP_INFO = 0x20
4671+@@ -1396,6 +1506,12 @@ const (
4672+ TCP_KEEPIDLE = 0x100
4673+ TCP_KEEPINIT = 0x80
4674+ TCP_KEEPINTVL = 0x200
4675++ TCP_LOG = 0x22
4676++ TCP_LOGBUF = 0x23
4677++ TCP_LOGDUMP = 0x25
4678++ TCP_LOGDUMPID = 0x26
4679++ TCP_LOGID = 0x24
4680++ TCP_LOG_ID_LEN = 0x40
4681+ TCP_MAXBURST = 0x4
4682+ TCP_MAXHLEN = 0x3c
4683+ TCP_MAXOLEN = 0x28
4684+@@ -1411,8 +1527,30 @@ const (
4685+ TCP_NOPUSH = 0x4
4686+ TCP_PCAP_IN = 0x1000
4687+ TCP_PCAP_OUT = 0x800
4688++ TCP_RACK_EARLY_RECOV = 0x423
4689++ TCP_RACK_EARLY_SEG = 0x424
4690++ TCP_RACK_IDLE_REDUCE_HIGH = 0x444
4691++ TCP_RACK_MIN_PACE = 0x445
4692++ TCP_RACK_MIN_PACE_SEG = 0x446
4693++ TCP_RACK_MIN_TO = 0x422
4694++ TCP_RACK_PACE_ALWAYS = 0x41f
4695++ TCP_RACK_PACE_MAX_SEG = 0x41e
4696++ TCP_RACK_PACE_REDUCE = 0x41d
4697++ TCP_RACK_PKT_DELAY = 0x428
4698++ TCP_RACK_PROP = 0x41b
4699++ TCP_RACK_PROP_RATE = 0x420
4700++ TCP_RACK_PRR_SENDALOT = 0x421
4701++ TCP_RACK_REORD_FADE = 0x426
4702++ TCP_RACK_REORD_THRESH = 0x425
4703++ TCP_RACK_SESS_CWV = 0x42a
4704++ TCP_RACK_TLP_INC_VAR = 0x429
4705++ TCP_RACK_TLP_REDUCE = 0x41c
4706++ TCP_RACK_TLP_THRESH = 0x427
4707++ TCP_RACK_TLP_USE = 0x447
4708+ TCP_VENDOR = 0x80000000
4709+ TCSAFLUSH = 0x2
4710++ TIMER_ABSTIME = 0x1
4711++ TIMER_RELTIME = 0x0
4712+ TIOCCBRK = 0x2000747a
4713+ TIOCCDTR = 0x20007478
4714+ TIOCCONS = 0x80047462
4715+@@ -1476,6 +1614,8 @@ const (
4716+ TIOCTIMESTAMP = 0x40087459
4717+ TIOCUCNTL = 0x80047466
4718+ TOSTOP = 0x400000
4719++ UTIME_NOW = -0x1
4720++ UTIME_OMIT = -0x2
4721+ VDISCARD = 0xf
4722+ VDSUSP = 0xb
4723+ VEOF = 0x0
4724+@@ -1487,6 +1627,8 @@ const (
4725+ VKILL = 0x5
4726+ VLNEXT = 0xe
4727+ VMIN = 0x10
4728++ VM_BCACHE_SIZE_MAX = 0x70e0000
4729++ VM_SWZONE_SIZE_MAX = 0x2280000
4730+ VQUIT = 0x9
4731+ VREPRINT = 0x6
4732+ VSTART = 0xc
4733+diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
4734+index 9f38267..b8f7c3c 100644
4735+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
4736++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
4737+@@ -339,6 +339,12 @@ const (
4738+ CLOCK_UPTIME_FAST = 0x8
4739+ CLOCK_UPTIME_PRECISE = 0x7
4740+ CLOCK_VIRTUAL = 0x1
4741++ CPUSTATES = 0x5
4742++ CP_IDLE = 0x4
4743++ CP_INTR = 0x3
4744++ CP_NICE = 0x1
4745++ CP_SYS = 0x2
4746++ CP_USER = 0x0
4747+ CREAD = 0x800
4748+ CRTSCTS = 0x30000
4749+ CS5 = 0x0
4750+@@ -355,6 +361,22 @@ const (
4751+ CTL_KERN = 0x1
4752+ CTL_MAXNAME = 0x18
4753+ CTL_NET = 0x4
4754++ DIOCGATTR = 0xc148648e
4755++ DIOCGDELETE = 0x80106488
4756++ DIOCGFLUSH = 0x20006487
4757++ DIOCGFRONTSTUFF = 0x40086486
4758++ DIOCGFWHEADS = 0x40046483
4759++ DIOCGFWSECTORS = 0x40046482
4760++ DIOCGIDENT = 0x41006489
4761++ DIOCGMEDIASIZE = 0x40086481
4762++ DIOCGPHYSPATH = 0x4400648d
4763++ DIOCGPROVIDERNAME = 0x4400648a
4764++ DIOCGSECTORSIZE = 0x40046480
4765++ DIOCGSTRIPEOFFSET = 0x4008648c
4766++ DIOCGSTRIPESIZE = 0x4008648b
4767++ DIOCSKERNELDUMP = 0x80506490
4768++ DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
4769++ DIOCZONECMD = 0xc080648f
4770+ DLT_A429 = 0xb8
4771+ DLT_A653_ICM = 0xb9
4772+ DLT_AIRONET_HEADER = 0x78
4773+@@ -379,11 +401,14 @@ const (
4774+ DLT_CHAOS = 0x5
4775+ DLT_CHDLC = 0x68
4776+ DLT_CISCO_IOS = 0x76
4777++ DLT_CLASS_NETBSD_RAWAF = 0x2240000
4778+ DLT_C_HDLC = 0x68
4779+ DLT_C_HDLC_WITH_DIR = 0xcd
4780+ DLT_DBUS = 0xe7
4781+ DLT_DECT = 0xdd
4782++ DLT_DISPLAYPORT_AUX = 0x113
4783+ DLT_DOCSIS = 0x8f
4784++ DLT_DOCSIS31_XRA31 = 0x111
4785+ DLT_DVB_CI = 0xeb
4786+ DLT_ECONET = 0x73
4787+ DLT_EN10MB = 0x1
4788+@@ -393,6 +418,7 @@ const (
4789+ DLT_ERF = 0xc5
4790+ DLT_ERF_ETH = 0xaf
4791+ DLT_ERF_POS = 0xb0
4792++ DLT_ETHERNET_MPACKET = 0x112
4793+ DLT_FC_2 = 0xe0
4794+ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
4795+ DLT_FDDI = 0xa
4796+@@ -406,7 +432,6 @@ const (
4797+ DLT_GPRS_LLC = 0xa9
4798+ DLT_GSMTAP_ABIS = 0xda
4799+ DLT_GSMTAP_UM = 0xd9
4800+- DLT_HHDLC = 0x79
4801+ DLT_IBM_SN = 0x92
4802+ DLT_IBM_SP = 0x91
4803+ DLT_IEEE802 = 0x6
4804+@@ -429,6 +454,7 @@ const (
4805+ DLT_IPV4 = 0xe4
4806+ DLT_IPV6 = 0xe5
4807+ DLT_IP_OVER_FC = 0x7a
4808++ DLT_ISO_14443 = 0x108
4809+ DLT_JUNIPER_ATM1 = 0x89
4810+ DLT_JUNIPER_ATM2 = 0x87
4811+ DLT_JUNIPER_ATM_CEMIC = 0xee
4812+@@ -461,8 +487,9 @@ const (
4813+ DLT_LINUX_PPP_WITHDIRECTION = 0xa6
4814+ DLT_LINUX_SLL = 0x71
4815+ DLT_LOOP = 0x6c
4816++ DLT_LORATAP = 0x10e
4817+ DLT_LTALK = 0x72
4818+- DLT_MATCHING_MAX = 0x104
4819++ DLT_MATCHING_MAX = 0x113
4820+ DLT_MATCHING_MIN = 0x68
4821+ DLT_MFR = 0xb6
4822+ DLT_MOST = 0xd3
4823+@@ -478,14 +505,16 @@ const (
4824+ DLT_NFC_LLCP = 0xf5
4825+ DLT_NFLOG = 0xef
4826+ DLT_NG40 = 0xf4
4827++ DLT_NORDIC_BLE = 0x110
4828+ DLT_NULL = 0x0
4829++ DLT_OPENFLOW = 0x10b
4830+ DLT_PCI_EXP = 0x7d
4831+ DLT_PFLOG = 0x75
4832+ DLT_PFSYNC = 0x79
4833+ DLT_PKTAP = 0x102
4834+ DLT_PPI = 0xc0
4835+ DLT_PPP = 0x9
4836+- DLT_PPP_BSDOS = 0x10
4837++ DLT_PPP_BSDOS = 0xe
4838+ DLT_PPP_ETHER = 0x33
4839+ DLT_PPP_PPPD = 0xa6
4840+ DLT_PPP_SERIAL = 0x32
4841+@@ -496,19 +525,25 @@ const (
4842+ DLT_PRONET = 0x4
4843+ DLT_RAIF1 = 0xc6
4844+ DLT_RAW = 0xc
4845++ DLT_RDS = 0x109
4846++ DLT_REDBACK_SMARTEDGE = 0x20
4847+ DLT_RIO = 0x7c
4848+ DLT_RTAC_SERIAL = 0xfa
4849+ DLT_SCCP = 0x8e
4850+ DLT_SCTP = 0xf8
4851++ DLT_SDLC = 0x10c
4852+ DLT_SITA = 0xc4
4853+ DLT_SLIP = 0x8
4854+- DLT_SLIP_BSDOS = 0xf
4855++ DLT_SLIP_BSDOS = 0xd
4856+ DLT_STANAG_5066_D_PDU = 0xed
4857+ DLT_SUNATM = 0x7b
4858+ DLT_SYMANTEC_FIREWALL = 0x63
4859++ DLT_TI_LLN_SNIFFER = 0x10d
4860+ DLT_TZSP = 0x80
4861+ DLT_USB = 0xba
4862+ DLT_USBPCAP = 0xf9
4863++ DLT_USB_DARWIN = 0x10a
4864++ DLT_USB_FREEBSD = 0xba
4865+ DLT_USB_LINUX = 0xbd
4866+ DLT_USB_LINUX_MMAPPED = 0xdc
4867+ DLT_USER0 = 0x93
4868+@@ -527,10 +562,14 @@ const (
4869+ DLT_USER7 = 0x9a
4870+ DLT_USER8 = 0x9b
4871+ DLT_USER9 = 0x9c
4872++ DLT_VSOCK = 0x10f
4873++ DLT_WATTSTOPPER_DLM = 0x107
4874+ DLT_WIHART = 0xdf
4875+ DLT_WIRESHARK_UPPER_PDU = 0xfc
4876+ DLT_X2E_SERIAL = 0xd5
4877+ DLT_X2E_XORAYA = 0xd6
4878++ DLT_ZWAVE_R1_R2 = 0x105
4879++ DLT_ZWAVE_R3 = 0x106
4880+ DT_BLK = 0x6
4881+ DT_CHR = 0x2
4882+ DT_DIR = 0x4
4883+@@ -548,6 +587,7 @@ const (
4884+ ECHONL = 0x10
4885+ ECHOPRT = 0x20
4886+ EVFILT_AIO = -0x3
4887++ EVFILT_EMPTY = -0xd
4888+ EVFILT_FS = -0x9
4889+ EVFILT_LIO = -0xa
4890+ EVFILT_PROC = -0x5
4891+@@ -555,11 +595,12 @@ const (
4892+ EVFILT_READ = -0x1
4893+ EVFILT_SENDFILE = -0xc
4894+ EVFILT_SIGNAL = -0x6
4895+- EVFILT_SYSCOUNT = 0xc
4896++ EVFILT_SYSCOUNT = 0xd
4897+ EVFILT_TIMER = -0x7
4898+ EVFILT_USER = -0xb
4899+ EVFILT_VNODE = -0x4
4900+ EVFILT_WRITE = -0x2
4901++ EVNAMEMAP_NAME_SIZE = 0x40
4902+ EV_ADD = 0x1
4903+ EV_CLEAR = 0x20
4904+ EV_DELETE = 0x2
4905+@@ -576,6 +617,7 @@ const (
4906+ EV_RECEIPT = 0x40
4907+ EV_SYSFLAGS = 0xf000
4908+ EXTA = 0x4b00
4909++ EXTATTR_MAXNAMELEN = 0xff
4910+ EXTATTR_NAMESPACE_EMPTY = 0x0
4911+ EXTATTR_NAMESPACE_SYSTEM = 0x2
4912+ EXTATTR_NAMESPACE_USER = 0x1
4913+@@ -617,6 +659,7 @@ const (
4914+ IEXTEN = 0x400
4915+ IFAN_ARRIVAL = 0x0
4916+ IFAN_DEPARTURE = 0x1
4917++ IFCAP_WOL_MAGIC = 0x2000
4918+ IFF_ALLMULTI = 0x200
4919+ IFF_ALTPHYS = 0x4000
4920+ IFF_BROADCAST = 0x2
4921+@@ -633,6 +676,7 @@ const (
4922+ IFF_MONITOR = 0x40000
4923+ IFF_MULTICAST = 0x8000
4924+ IFF_NOARP = 0x80
4925++ IFF_NOGROUP = 0x800000
4926+ IFF_OACTIVE = 0x400
4927+ IFF_POINTOPOINT = 0x10
4928+ IFF_PPROMISC = 0x20000
4929+@@ -807,6 +851,7 @@ const (
4930+ IPV6_DSTOPTS = 0x32
4931+ IPV6_FLOWID = 0x43
4932+ IPV6_FLOWINFO_MASK = 0xffffff0f
4933++ IPV6_FLOWLABEL_LEN = 0x14
4934+ IPV6_FLOWLABEL_MASK = 0xffff0f00
4935+ IPV6_FLOWTYPE = 0x44
4936+ IPV6_FRAGTTL = 0x78
4937+@@ -827,13 +872,13 @@ const (
4938+ IPV6_MAX_GROUP_SRC_FILTER = 0x200
4939+ IPV6_MAX_MEMBERSHIPS = 0xfff
4940+ IPV6_MAX_SOCK_SRC_FILTER = 0x80
4941+- IPV6_MIN_MEMBERSHIPS = 0x1f
4942+ IPV6_MMTU = 0x500
4943+ IPV6_MSFILTER = 0x4a
4944+ IPV6_MULTICAST_HOPS = 0xa
4945+ IPV6_MULTICAST_IF = 0x9
4946+ IPV6_MULTICAST_LOOP = 0xb
4947+ IPV6_NEXTHOP = 0x30
4948++ IPV6_ORIGDSTADDR = 0x48
4949+ IPV6_PATHMTU = 0x2c
4950+ IPV6_PKTINFO = 0x2e
4951+ IPV6_PORTRANGE = 0xe
4952+@@ -845,6 +890,7 @@ const (
4953+ IPV6_RECVFLOWID = 0x46
4954+ IPV6_RECVHOPLIMIT = 0x25
4955+ IPV6_RECVHOPOPTS = 0x27
4956++ IPV6_RECVORIGDSTADDR = 0x48
4957+ IPV6_RECVPATHMTU = 0x2b
4958+ IPV6_RECVPKTINFO = 0x24
4959+ IPV6_RECVRSSBUCKETID = 0x47
4960+@@ -905,10 +951,8 @@ const (
4961+ IP_MAX_MEMBERSHIPS = 0xfff
4962+ IP_MAX_SOCK_MUTE_FILTER = 0x80
4963+ IP_MAX_SOCK_SRC_FILTER = 0x80
4964+- IP_MAX_SOURCE_FILTER = 0x400
4965+ IP_MF = 0x2000
4966+ IP_MINTTL = 0x42
4967+- IP_MIN_MEMBERSHIPS = 0x1f
4968+ IP_MSFILTER = 0x4a
4969+ IP_MSS = 0x240
4970+ IP_MULTICAST_IF = 0x9
4971+@@ -918,6 +962,7 @@ const (
4972+ IP_OFFMASK = 0x1fff
4973+ IP_ONESBCAST = 0x17
4974+ IP_OPTIONS = 0x1
4975++ IP_ORIGDSTADDR = 0x1b
4976+ IP_PORTRANGE = 0x13
4977+ IP_PORTRANGE_DEFAULT = 0x0
4978+ IP_PORTRANGE_HIGH = 0x1
4979+@@ -926,6 +971,7 @@ const (
4980+ IP_RECVFLOWID = 0x5d
4981+ IP_RECVIF = 0x14
4982+ IP_RECVOPTS = 0x5
4983++ IP_RECVORIGDSTADDR = 0x1b
4984+ IP_RECVRETOPTS = 0x6
4985+ IP_RECVRSSBUCKETID = 0x5e
4986+ IP_RECVTOS = 0x44
4987+@@ -976,6 +1022,7 @@ const (
4988+ MAP_EXCL = 0x4000
4989+ MAP_FILE = 0x0
4990+ MAP_FIXED = 0x10
4991++ MAP_GUARD = 0x2000
4992+ MAP_HASSEMAPHORE = 0x200
4993+ MAP_NOCORE = 0x20000
4994+ MAP_NOSYNC = 0x800
4995+@@ -987,6 +1034,15 @@ const (
4996+ MAP_RESERVED0100 = 0x100
4997+ MAP_SHARED = 0x1
4998+ MAP_STACK = 0x400
4999++ MCAST_BLOCK_SOURCE = 0x54
5000++ MCAST_EXCLUDE = 0x2
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: