From 3184c42956b7260a2bcba95bca5ffda2ce3cbdc1 Mon Sep 17 00:00:00 2001 From: Toby Date: Thu, 24 Nov 2022 00:22:44 -0800 Subject: [PATCH 1/3] refactor: re-org packages --- Taskfile.yaml | 2 +- {cmd => app}/auth/external.go | 0 {cmd => app}/auth/funcs.go | 6 ++--- {cmd => app/cmd}/acme.go | 0 {cmd => app/cmd}/client.go | 25 +++++++++++---------- {cmd => app/cmd}/client_gpl.go | 9 ++++---- {cmd => app/cmd}/client_nongpl.go | 4 ++-- {cmd => app/cmd}/completion.go | 0 {cmd => app/cmd}/config.go | 0 {cmd => app/cmd}/config_test.go | 0 {cmd => app/cmd}/ipmasker.go | 0 {cmd => app/cmd}/kploader.go | 0 {cmd => app/cmd}/main.go | 0 {cmd => app/cmd}/mmdb.go | 0 {cmd => app/cmd}/resolver.go | 2 +- {cmd => app/cmd}/server.go | 19 ++++++++-------- {cmd => app/cmd}/update.go | 0 {pkg => app}/http/server.go | 10 ++++----- {pkg => app}/redirect/origdst_linux.go | 0 {pkg => app}/redirect/origdst_linux_386.go | 0 {pkg => app}/redirect/tcp_linux.go | 8 +++---- {pkg => app}/redirect/tcp_stub.go | 4 ++-- {pkg => app}/relay/tcp.go | 8 +++---- {pkg => app}/relay/udp.go | 8 +++---- {pkg => app}/socks5/server.go | 14 ++++++------ {pkg => app}/tproxy/tcp_linux.go | 8 +++---- {pkg => app}/tproxy/tcp_stub.go | 4 ++-- {pkg => app}/tproxy/udp_linux.go | 6 ++--- {pkg => app}/tproxy/udp_stub.go | 4 ++-- {pkg => app}/tun/server.go | 8 +++---- {pkg => app}/tun/tcp.go | 2 +- {pkg => app}/tun/udp.go | 4 ++-- build.ps1 | 2 +- build.sh | 2 +- {pkg => core}/acl/engine.go | 2 +- {pkg => core}/acl/engine_test.go | 0 {pkg => core}/acl/entry.go | 0 {pkg => core}/acl/entry_test.go | 0 {pkg => core}/congestion/brutal.go | 0 {pkg => core}/congestion/pacer.go | 0 {pkg/core => core/cs}/client.go | 10 ++++----- {pkg/core => core/cs}/frag.go | 2 +- {pkg/core => core/cs}/frag_test.go | 2 +- {pkg/core => core/cs}/protocol.go | 2 +- {pkg/core => core/cs}/server.go | 10 ++++----- {pkg/core => core/cs}/server_client.go | 8 +++---- {pkg/core => core/cs}/stream.go | 2 +- {pkg => core}/pktconns/faketcp/LICENSE | 0 {pkg => core}/pktconns/faketcp/obfs.go | 2 +- {pkg => core}/pktconns/faketcp/tcp_linux.go | 0 {pkg => core}/pktconns/faketcp/tcp_stub.go | 0 {pkg => core}/pktconns/faketcp/tcp_test.go | 0 {pkg => core}/pktconns/funcs.go | 8 +++---- {pkg => core}/pktconns/obfs/obfs.go | 0 {pkg => core}/pktconns/obfs/obfs_test.go | 0 {pkg => core}/pktconns/udp/hop.go | 2 +- {pkg => core}/pktconns/udp/hop_test.go | 0 {pkg => core}/pktconns/udp/obfs.go | 2 +- {pkg => core}/pktconns/wechat/obfs.go | 2 +- {pkg => core}/pmtud/avail.go | 0 {pkg => core}/pmtud/unavail.go | 0 {pkg => core}/sockopt/sockopt.go | 0 {pkg => core}/sockopt/sockopt_linux.go | 0 {pkg => core}/sockopt/sockopt_others.go | 0 {pkg => core}/transport/client.go | 0 {pkg => core}/transport/resolve.go | 0 {pkg => core}/transport/server.go | 4 ++-- {pkg => core}/transport/socks5.go | 0 {pkg => core}/utils/misc.go | 0 {pkg => core}/utils/pipe.go | 0 70 files changed, 110 insertions(+), 107 deletions(-) rename {cmd => app}/auth/external.go (100%) rename {cmd => app}/auth/funcs.go (86%) rename {cmd => app/cmd}/acme.go (100%) rename {cmd => app/cmd}/client.go (96%) rename {cmd => app/cmd}/client_gpl.go (94%) rename {cmd => app/cmd}/client_nongpl.go (91%) rename {cmd => app/cmd}/completion.go (100%) rename {cmd => app/cmd}/config.go (100%) rename {cmd => app/cmd}/config_test.go (100%) rename {cmd => app/cmd}/ipmasker.go (100%) rename {cmd => app/cmd}/kploader.go (100%) rename {cmd => app/cmd}/main.go (100%) rename {cmd => app/cmd}/mmdb.go (100%) rename {cmd => app/cmd}/resolver.go (98%) rename {cmd => app/cmd}/server.go (96%) rename {cmd => app/cmd}/update.go (100%) rename {pkg => app}/http/server.go (88%) rename {pkg => app}/redirect/origdst_linux.go (100%) rename {pkg => app}/redirect/origdst_linux_386.go (100%) rename {pkg => app}/redirect/tcp_linux.go (91%) rename {pkg => app}/redirect/tcp_stub.go (75%) rename {pkg => app}/relay/tcp.go (85%) rename {pkg => app}/relay/udp.go (93%) rename {pkg => app}/socks5/server.go (97%) rename {pkg => app}/tproxy/tcp_linux.go (88%) rename {pkg => app}/tproxy/tcp_stub.go (74%) rename {pkg => app}/tproxy/udp_linux.go (94%) rename {pkg => app}/tproxy/udp_stub.go (77%) rename {pkg => app}/tun/server.go (93%) rename {pkg => app}/tun/tcp.go (95%) rename {pkg => app}/tun/udp.go (92%) rename {pkg => core}/acl/engine.go (98%) rename {pkg => core}/acl/engine_test.go (100%) rename {pkg => core}/acl/entry.go (100%) rename {pkg => core}/acl/entry_test.go (100%) rename {pkg => core}/congestion/brutal.go (100%) rename {pkg => core}/congestion/pacer.go (100%) rename {pkg/core => core/cs}/client.go (98%) rename {pkg/core => core/cs}/frag.go (99%) rename {pkg/core => core/cs}/frag_test.go (99%) rename {pkg/core => core/cs}/protocol.go (99%) rename {pkg/core => core/cs}/server.go (96%) rename {pkg/core => core/cs}/server_client.go (98%) rename {pkg/core => core/cs}/stream.go (99%) rename {pkg => core}/pktconns/faketcp/LICENSE (100%) rename {pkg => core}/pktconns/faketcp/obfs.go (97%) rename {pkg => core}/pktconns/faketcp/tcp_linux.go (100%) rename {pkg => core}/pktconns/faketcp/tcp_stub.go (100%) rename {pkg => core}/pktconns/faketcp/tcp_test.go (100%) rename {pkg => core}/pktconns/funcs.go (96%) rename {pkg => core}/pktconns/obfs/obfs.go (100%) rename {pkg => core}/pktconns/obfs/obfs_test.go (100%) rename {pkg => core}/pktconns/udp/hop.go (99%) rename {pkg => core}/pktconns/udp/hop_test.go (100%) rename {pkg => core}/pktconns/udp/obfs.go (97%) rename {pkg => core}/pktconns/wechat/obfs.go (98%) rename {pkg => core}/pmtud/avail.go (100%) rename {pkg => core}/pmtud/unavail.go (100%) rename {pkg => core}/sockopt/sockopt.go (100%) rename {pkg => core}/sockopt/sockopt_linux.go (100%) rename {pkg => core}/sockopt/sockopt_others.go (100%) rename {pkg => core}/transport/client.go (100%) rename {pkg => core}/transport/resolve.go (100%) rename {pkg => core}/transport/server.go (96%) rename {pkg => core}/transport/socks5.go (100%) rename {pkg => core}/utils/misc.go (100%) rename {pkg => core}/utils/pipe.go (100%) diff --git a/Taskfile.yaml b/Taskfile.yaml index 6535a3e..a77430a 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -12,7 +12,7 @@ tasks: sh: git rev-parse HEAD BUILD_DATE: sh: date "+%Y%m%d%H%M%S" - dir: ./cmd + dir: ./app/cmd/ cmds: - | GOOS={{.GOOS}} GOARCH={{.GOARCH}} GOARM={{.GOARM}} GOMIPS={{.GOMIPS}} \ diff --git a/cmd/auth/external.go b/app/auth/external.go similarity index 100% rename from cmd/auth/external.go rename to app/auth/external.go diff --git a/cmd/auth/funcs.go b/app/auth/funcs.go similarity index 86% rename from cmd/auth/funcs.go rename to app/auth/funcs.go index 04e4693..63d3f50 100644 --- a/cmd/auth/funcs.go +++ b/app/auth/funcs.go @@ -6,11 +6,11 @@ import ( "net/http" "time" - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/cs" "github.com/yosuke-furukawa/json5/encoding/json5" ) -func PasswordAuthFunc(rawMsg json5.RawMessage) (core.ConnectFunc, error) { +func PasswordAuthFunc(rawMsg json5.RawMessage) (cs.ConnectFunc, error) { var pwds []string err := json5.Unmarshal(rawMsg, &pwds) if err != nil { @@ -34,7 +34,7 @@ func PasswordAuthFunc(rawMsg json5.RawMessage) (core.ConnectFunc, error) { }, nil } -func ExternalAuthFunc(rawMsg json5.RawMessage) (core.ConnectFunc, error) { +func ExternalAuthFunc(rawMsg json5.RawMessage) (cs.ConnectFunc, error) { var extConfig map[string]string err := json5.Unmarshal(rawMsg, &extConfig) if err != nil { diff --git a/cmd/acme.go b/app/cmd/acme.go similarity index 100% rename from cmd/acme.go rename to app/cmd/acme.go diff --git a/cmd/client.go b/app/cmd/client.go similarity index 96% rename from cmd/client.go rename to app/cmd/client.go index cf3c4fa..857b068 100644 --- a/cmd/client.go +++ b/app/cmd/client.go @@ -11,20 +11,21 @@ import ( "os" "time" - "github.com/apernet/hysteria/pkg/pktconns" + hyHTTP "github.com/apernet/hysteria/app/http" + "github.com/apernet/hysteria/app/redirect" + "github.com/apernet/hysteria/app/relay" + "github.com/apernet/hysteria/app/socks5" + "github.com/apernet/hysteria/app/tproxy" - "github.com/apernet/hysteria/pkg/pmtud" - "github.com/apernet/hysteria/pkg/redirect" + "github.com/apernet/hysteria/core/pktconns" + + "github.com/apernet/hysteria/core/pmtud" "github.com/oschwald/geoip2-golang" "github.com/yosuke-furukawa/json5/encoding/json5" - "github.com/apernet/hysteria/pkg/acl" - "github.com/apernet/hysteria/pkg/core" - hyHTTP "github.com/apernet/hysteria/pkg/http" - "github.com/apernet/hysteria/pkg/relay" - "github.com/apernet/hysteria/pkg/socks5" - "github.com/apernet/hysteria/pkg/tproxy" - "github.com/apernet/hysteria/pkg/transport" + "github.com/apernet/hysteria/core/acl" + "github.com/apernet/hysteria/core/cs" + "github.com/apernet/hysteria/core/transport" "github.com/lucas-clemente/quic-go" "github.com/sirupsen/logrus" ) @@ -129,12 +130,12 @@ func client(config *clientConfig) { } } // Client - var client *core.Client + var client *cs.Client try := 0 up, down, _ := config.Speed() for { try += 1 - c, err := core.NewClient(config.Server, auth, tlsConfig, quicConfig, pktConnFunc, up, down, config.FastOpen, + c, err := cs.NewClient(config.Server, auth, tlsConfig, quicConfig, pktConnFunc, up, down, config.FastOpen, func(err error) { if config.QuitOnDisconnect { logrus.WithFields(logrus.Fields{ diff --git a/cmd/client_gpl.go b/app/cmd/client_gpl.go similarity index 94% rename from cmd/client_gpl.go rename to app/cmd/client_gpl.go index de7aa0b..dd5dad2 100644 --- a/cmd/client_gpl.go +++ b/app/cmd/client_gpl.go @@ -9,11 +9,12 @@ import ( "strings" "time" + "github.com/apernet/hysteria/app/tun" + "github.com/docker/go-units" "gvisor.dev/gvisor/pkg/tcpip/transport/tcp" - "github.com/apernet/hysteria/pkg/core" - "github.com/apernet/hysteria/pkg/tun" + "github.com/apernet/hysteria/core/cs" "github.com/sirupsen/logrus" ) @@ -34,7 +35,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ` -func startTUN(config *clientConfig, client *core.Client, errChan chan error) { +func startTUN(config *clientConfig, client *cs.Client, errChan chan error) { timeout := time.Duration(config.TUN.Timeout) * time.Second if timeout == 0 { timeout = 300 * time.Second @@ -92,7 +93,7 @@ func startTUN(config *clientConfig, client *core.Client, errChan chan error) { "src": defaultIPMasker.Mask(addr.String()), "dst": defaultIPMasker.Mask(reqAddr), }).Debugf("TUN %s EOF", strings.ToUpper(addr.Network())) - } else if err == core.ErrClosed && strings.HasPrefix(addr.Network(), "udp") { + } else if err == cs.ErrClosed && strings.HasPrefix(addr.Network(), "udp") { logrus.WithFields(logrus.Fields{ "src": defaultIPMasker.Mask(addr.String()), "dst": defaultIPMasker.Mask(reqAddr), diff --git a/cmd/client_nongpl.go b/app/cmd/client_nongpl.go similarity index 91% rename from cmd/client_nongpl.go rename to app/cmd/client_nongpl.go index 7b4e5bb..417159b 100644 --- a/cmd/client_nongpl.go +++ b/app/cmd/client_nongpl.go @@ -4,7 +4,7 @@ package main import ( - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/cs" "github.com/sirupsen/logrus" ) @@ -31,6 +31,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ` -func startTUN(config *clientConfig, client *core.Client, errChan chan error) { +func startTUN(config *clientConfig, client *cs.Client, errChan chan error) { logrus.Fatalln("TUN mode is only available in GPL builds. Please rebuild hysteria with -tags gpl") } diff --git a/cmd/completion.go b/app/cmd/completion.go similarity index 100% rename from cmd/completion.go rename to app/cmd/completion.go diff --git a/cmd/config.go b/app/cmd/config.go similarity index 100% rename from cmd/config.go rename to app/cmd/config.go diff --git a/cmd/config_test.go b/app/cmd/config_test.go similarity index 100% rename from cmd/config_test.go rename to app/cmd/config_test.go diff --git a/cmd/ipmasker.go b/app/cmd/ipmasker.go similarity index 100% rename from cmd/ipmasker.go rename to app/cmd/ipmasker.go diff --git a/cmd/kploader.go b/app/cmd/kploader.go similarity index 100% rename from cmd/kploader.go rename to app/cmd/kploader.go diff --git a/cmd/main.go b/app/cmd/main.go similarity index 100% rename from cmd/main.go rename to app/cmd/main.go diff --git a/cmd/mmdb.go b/app/cmd/mmdb.go similarity index 100% rename from cmd/mmdb.go rename to app/cmd/mmdb.go diff --git a/cmd/resolver.go b/app/cmd/resolver.go similarity index 98% rename from cmd/resolver.go rename to app/cmd/resolver.go index a4dacb4..473712c 100644 --- a/cmd/resolver.go +++ b/app/cmd/resolver.go @@ -7,7 +7,7 @@ import ( "net/url" "strings" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/utils" rdns "github.com/folbricht/routedns" ) diff --git a/cmd/server.go b/app/cmd/server.go similarity index 96% rename from cmd/server.go rename to app/cmd/server.go index f69b829..f4c533b 100644 --- a/cmd/server.go +++ b/app/cmd/server.go @@ -7,14 +7,15 @@ import ( "net/http" "time" - "github.com/apernet/hysteria/pkg/pktconns" + "github.com/apernet/hysteria/app/auth" - "github.com/apernet/hysteria/cmd/auth" - "github.com/apernet/hysteria/pkg/acl" - "github.com/apernet/hysteria/pkg/core" - "github.com/apernet/hysteria/pkg/pmtud" - "github.com/apernet/hysteria/pkg/sockopt" - "github.com/apernet/hysteria/pkg/transport" + "github.com/apernet/hysteria/core/pktconns" + + "github.com/apernet/hysteria/core/acl" + "github.com/apernet/hysteria/core/cs" + "github.com/apernet/hysteria/core/pmtud" + "github.com/apernet/hysteria/core/sockopt" + "github.com/apernet/hysteria/core/transport" "github.com/lucas-clemente/quic-go" "github.com/oschwald/geoip2-golang" "github.com/prometheus/client_golang/prometheus" @@ -90,7 +91,7 @@ func server(config *serverConfig) { logrus.Info("Path MTU Discovery is not yet supported on this platform") } // Auth - var authFunc core.ConnectFunc + var authFunc cs.ConnectFunc var err error switch authMode := config.Auth.Mode; authMode { case "", "none": @@ -221,7 +222,7 @@ func server(config *serverConfig) { } // Server up, down, _ := config.Speed() - server, err := core.NewServer(tlsConfig, quicConfig, pktConn, + server, err := cs.NewServer(tlsConfig, quicConfig, pktConn, transport.DefaultServerTransport, up, down, config.DisableUDP, aclEngine, connectFunc, disconnectFunc, tcpRequestFunc, tcpErrorFunc, udpRequestFunc, udpErrorFunc, promReg) if err != nil { diff --git a/cmd/update.go b/app/cmd/update.go similarity index 100% rename from cmd/update.go rename to app/cmd/update.go diff --git a/pkg/http/server.go b/app/http/server.go similarity index 88% rename from pkg/http/server.go rename to app/http/server.go index 99d9a26..5e08e12 100644 --- a/pkg/http/server.go +++ b/app/http/server.go @@ -7,17 +7,17 @@ import ( "net/http" "time" - "github.com/apernet/hysteria/pkg/transport" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/transport" + "github.com/apernet/hysteria/core/utils" "github.com/elazarl/goproxy/ext/auth" - "github.com/apernet/hysteria/pkg/acl" - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/acl" + "github.com/apernet/hysteria/core/cs" "github.com/elazarl/goproxy" ) -func NewProxyHTTPServer(hyClient *core.Client, transport *transport.ClientTransport, idleTimeout time.Duration, +func NewProxyHTTPServer(hyClient *cs.Client, transport *transport.ClientTransport, idleTimeout time.Duration, aclEngine *acl.Engine, basicAuthFunc func(user, password string) bool, newDialFunc func(reqAddr string, action acl.Action, arg string), diff --git a/pkg/redirect/origdst_linux.go b/app/redirect/origdst_linux.go similarity index 100% rename from pkg/redirect/origdst_linux.go rename to app/redirect/origdst_linux.go diff --git a/pkg/redirect/origdst_linux_386.go b/app/redirect/origdst_linux_386.go similarity index 100% rename from pkg/redirect/origdst_linux_386.go rename to app/redirect/origdst_linux_386.go diff --git a/pkg/redirect/tcp_linux.go b/app/redirect/tcp_linux.go similarity index 91% rename from pkg/redirect/tcp_linux.go rename to app/redirect/tcp_linux.go index 7fcef90..0845690 100644 --- a/pkg/redirect/tcp_linux.go +++ b/app/redirect/tcp_linux.go @@ -7,12 +7,12 @@ import ( "syscall" "time" - "github.com/apernet/hysteria/pkg/core" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/cs" + "github.com/apernet/hysteria/core/utils" ) type TCPRedirect struct { - HyClient *core.Client + HyClient *cs.Client ListenAddr *net.TCPAddr Timeout time.Duration @@ -20,7 +20,7 @@ type TCPRedirect struct { ErrorFunc func(addr, reqAddr net.Addr, err error) } -func NewTCPRedirect(hyClient *core.Client, listen string, timeout time.Duration, +func NewTCPRedirect(hyClient *cs.Client, listen string, timeout time.Duration, connFunc func(addr, reqAddr net.Addr), errorFunc func(addr, reqAddr net.Addr, err error), ) (*TCPRedirect, error) { diff --git a/pkg/redirect/tcp_stub.go b/app/redirect/tcp_stub.go similarity index 75% rename from pkg/redirect/tcp_stub.go rename to app/redirect/tcp_stub.go index d7bdd99..353abb1 100644 --- a/pkg/redirect/tcp_stub.go +++ b/app/redirect/tcp_stub.go @@ -8,12 +8,12 @@ import ( "net" "time" - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/cs" ) type TCPRedirect struct{} -func NewTCPRedirect(hyClient *core.Client, listen string, timeout time.Duration, +func NewTCPRedirect(hyClient *cs.Client, listen string, timeout time.Duration, connFunc func(addr, reqAddr net.Addr), errorFunc func(addr, reqAddr net.Addr, err error), ) (*TCPRedirect, error) { diff --git a/pkg/relay/tcp.go b/app/relay/tcp.go similarity index 85% rename from pkg/relay/tcp.go rename to app/relay/tcp.go index 1852e1c..d09ce9b 100644 --- a/pkg/relay/tcp.go +++ b/app/relay/tcp.go @@ -4,12 +4,12 @@ import ( "net" "time" - "github.com/apernet/hysteria/pkg/core" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/cs" + "github.com/apernet/hysteria/core/utils" ) type TCPRelay struct { - HyClient *core.Client + HyClient *cs.Client ListenAddr *net.TCPAddr Remote string Timeout time.Duration @@ -18,7 +18,7 @@ type TCPRelay struct { ErrorFunc func(addr net.Addr, err error) } -func NewTCPRelay(hyClient *core.Client, listen, remote string, timeout time.Duration, +func NewTCPRelay(hyClient *cs.Client, listen, remote string, timeout time.Duration, connFunc func(addr net.Addr), errorFunc func(addr net.Addr, err error), ) (*TCPRelay, error) { tAddr, err := net.ResolveTCPAddr("tcp", listen) diff --git a/pkg/relay/udp.go b/app/relay/udp.go similarity index 93% rename from pkg/relay/udp.go rename to app/relay/udp.go index 8941b50..a165c32 100644 --- a/pkg/relay/udp.go +++ b/app/relay/udp.go @@ -7,7 +7,7 @@ import ( "sync/atomic" "time" - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/cs" ) const udpBufferSize = 4096 @@ -15,7 +15,7 @@ const udpBufferSize = 4096 var ErrTimeout = errors.New("inactivity timeout") type UDPRelay struct { - HyClient *core.Client + HyClient *cs.Client ListenAddr *net.UDPAddr Remote string Timeout time.Duration @@ -24,7 +24,7 @@ type UDPRelay struct { ErrorFunc func(addr net.Addr, err error) } -func NewUDPRelay(hyClient *core.Client, listen, remote string, timeout time.Duration, +func NewUDPRelay(hyClient *cs.Client, listen, remote string, timeout time.Duration, connFunc func(addr net.Addr), errorFunc func(addr net.Addr, err error), ) (*UDPRelay, error) { uAddr, err := net.ResolveUDPAddr("udp", listen) @@ -46,7 +46,7 @@ func NewUDPRelay(hyClient *core.Client, listen, remote string, timeout time.Dura } type connEntry struct { - HyConn core.HyUDPConn + HyConn cs.HyUDPConn Deadline atomic.Value } diff --git a/pkg/socks5/server.go b/app/socks5/server.go similarity index 97% rename from pkg/socks5/server.go rename to app/socks5/server.go index 575762f..58255d8 100644 --- a/pkg/socks5/server.go +++ b/app/socks5/server.go @@ -6,10 +6,10 @@ import ( "fmt" "strconv" - "github.com/apernet/hysteria/pkg/acl" - "github.com/apernet/hysteria/pkg/core" - "github.com/apernet/hysteria/pkg/transport" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/acl" + "github.com/apernet/hysteria/core/cs" + "github.com/apernet/hysteria/core/transport" + "github.com/apernet/hysteria/core/utils" ) import ( @@ -27,7 +27,7 @@ var ( ) type Server struct { - HyClient *core.Client + HyClient *cs.Client Transport *transport.ClientTransport AuthFunc func(username, password string) bool Method byte @@ -44,7 +44,7 @@ type Server struct { tcpListener *net.TCPListener } -func NewServer(hyClient *core.Client, transport *transport.ClientTransport, addr string, +func NewServer(hyClient *cs.Client, transport *transport.ClientTransport, addr string, authFunc func(username, password string) bool, tcpTimeout time.Duration, aclEngine *acl.Engine, disableUDP bool, tcpReqFunc func(addr net.Addr, reqAddr string, action acl.Action, arg string), @@ -320,7 +320,7 @@ func (s *Server) handleUDP(c *net.TCPConn, r *socks5.Request) error { return nil } -func (s *Server) udpServer(clientConn *net.UDPConn, localRelayConn *net.UDPConn, hyUDP core.HyUDPConn) { +func (s *Server) udpServer(clientConn *net.UDPConn, localRelayConn *net.UDPConn, hyUDP cs.HyUDPConn) { var clientAddr *net.UDPAddr buf := make([]byte, udpBufferSize) // Local to remote diff --git a/pkg/tproxy/tcp_linux.go b/app/tproxy/tcp_linux.go similarity index 88% rename from pkg/tproxy/tcp_linux.go rename to app/tproxy/tcp_linux.go index 2c8f822..c090a97 100644 --- a/pkg/tproxy/tcp_linux.go +++ b/app/tproxy/tcp_linux.go @@ -5,12 +5,12 @@ import ( "time" "github.com/LiamHaworth/go-tproxy" - "github.com/apernet/hysteria/pkg/core" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/cs" + "github.com/apernet/hysteria/core/utils" ) type TCPTProxy struct { - HyClient *core.Client + HyClient *cs.Client ListenAddr *net.TCPAddr Timeout time.Duration @@ -18,7 +18,7 @@ type TCPTProxy struct { ErrorFunc func(addr, reqAddr net.Addr, err error) } -func NewTCPTProxy(hyClient *core.Client, listen string, timeout time.Duration, +func NewTCPTProxy(hyClient *cs.Client, listen string, timeout time.Duration, connFunc func(addr, reqAddr net.Addr), errorFunc func(addr, reqAddr net.Addr, err error), ) (*TCPTProxy, error) { diff --git a/pkg/tproxy/tcp_stub.go b/app/tproxy/tcp_stub.go similarity index 74% rename from pkg/tproxy/tcp_stub.go rename to app/tproxy/tcp_stub.go index a4059b7..5f4f30d 100644 --- a/pkg/tproxy/tcp_stub.go +++ b/app/tproxy/tcp_stub.go @@ -8,12 +8,12 @@ import ( "net" "time" - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/cs" ) type TCPTProxy struct{} -func NewTCPTProxy(hyClient *core.Client, listen string, timeout time.Duration, +func NewTCPTProxy(hyClient *cs.Client, listen string, timeout time.Duration, connFunc func(addr, reqAddr net.Addr), errorFunc func(addr, reqAddr net.Addr, err error), ) (*TCPTProxy, error) { diff --git a/pkg/tproxy/udp_linux.go b/app/tproxy/udp_linux.go similarity index 94% rename from pkg/tproxy/udp_linux.go rename to app/tproxy/udp_linux.go index daa6f7f..b67500d 100644 --- a/pkg/tproxy/udp_linux.go +++ b/app/tproxy/udp_linux.go @@ -5,13 +5,13 @@ import ( "time" "github.com/LiamHaworth/go-tproxy" - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/cs" ) const udpBufferSize = 4096 type UDPTProxy struct { - HyClient *core.Client + HyClient *cs.Client ListenAddr *net.UDPAddr Timeout time.Duration @@ -19,7 +19,7 @@ type UDPTProxy struct { ErrorFunc func(addr, reqAddr net.Addr, err error) } -func NewUDPTProxy(hyClient *core.Client, listen string, timeout time.Duration, +func NewUDPTProxy(hyClient *cs.Client, listen string, timeout time.Duration, connFunc func(addr, reqAddr net.Addr), errorFunc func(addr, reqAddr net.Addr, err error), ) (*UDPTProxy, error) { diff --git a/pkg/tproxy/udp_stub.go b/app/tproxy/udp_stub.go similarity index 77% rename from pkg/tproxy/udp_stub.go rename to app/tproxy/udp_stub.go index c884953..d794dfb 100644 --- a/pkg/tproxy/udp_stub.go +++ b/app/tproxy/udp_stub.go @@ -8,14 +8,14 @@ import ( "net" "time" - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/cs" ) var ErrTimeout = errors.New("inactivity timeout") type UDPTProxy struct{} -func NewUDPTProxy(hyClient *core.Client, listen string, timeout time.Duration, +func NewUDPTProxy(hyClient *cs.Client, listen string, timeout time.Duration, connFunc func(addr, reqAddr net.Addr), errorFunc func(addr, reqAddr net.Addr, err error), ) (*UDPTProxy, error) { return nil, errors.New("not supported on the current system") diff --git a/pkg/tun/server.go b/app/tun/server.go similarity index 93% rename from pkg/tun/server.go rename to app/tun/server.go index 337713c..297257b 100644 --- a/pkg/tun/server.go +++ b/app/tun/server.go @@ -14,7 +14,7 @@ import ( "github.com/xjasonlyu/tun2socks/v2/core/option" - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/cs" "github.com/sirupsen/logrus" t2score "github.com/xjasonlyu/tun2socks/v2/core" "github.com/xjasonlyu/tun2socks/v2/core/adapter" @@ -27,7 +27,7 @@ import ( var _ adapter.TransportHandler = (*Server)(nil) type Server struct { - HyClient *core.Client + HyClient *cs.Client Timeout time.Duration DeviceInfo DeviceInfo @@ -66,7 +66,7 @@ func (d *DeviceInfo) Open() (dev device.Device, err error) { return } -func NewServerWithTunFd(hyClient *core.Client, timeout time.Duration, tunFd int, mtu uint32, +func NewServerWithTunFd(hyClient *cs.Client, timeout time.Duration, tunFd int, mtu uint32, tcpSendBufferSize, tcpReceiveBufferSize int, tcpModerateReceiveBuffer bool, ) (*Server, error) { if mtu == 0 { @@ -87,7 +87,7 @@ func NewServerWithTunFd(hyClient *core.Client, timeout time.Duration, tunFd int, return s, nil } -func NewServer(hyClient *core.Client, timeout time.Duration, name string, mtu uint32, +func NewServer(hyClient *cs.Client, timeout time.Duration, name string, mtu uint32, tcpSendBufferSize, tcpReceiveBufferSize int, tcpModerateReceiveBuffer bool, ) (*Server, error) { if mtu == 0 { diff --git a/pkg/tun/tcp.go b/app/tun/tcp.go similarity index 95% rename from pkg/tun/tcp.go rename to app/tun/tcp.go index 2b09ab8..7a59989 100644 --- a/pkg/tun/tcp.go +++ b/app/tun/tcp.go @@ -6,7 +6,7 @@ package tun import ( "net" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/utils" "github.com/xjasonlyu/tun2socks/v2/core/adapter" ) diff --git a/pkg/tun/udp.go b/app/tun/udp.go similarity index 92% rename from pkg/tun/udp.go rename to app/tun/udp.go index d81309a..78f3f31 100644 --- a/pkg/tun/udp.go +++ b/app/tun/udp.go @@ -9,7 +9,7 @@ import ( "strconv" "time" - "github.com/apernet/hysteria/pkg/core" + "github.com/apernet/hysteria/core/cs" "github.com/xjasonlyu/tun2socks/v2/core/adapter" ) @@ -52,7 +52,7 @@ func (s *Server) handleUDPConn(conn adapter.UDPConn) { err = s.relayUDP(conn, rc, &remoteAddr, s.Timeout) } -func (s *Server) relayUDP(lc adapter.UDPConn, rc core.HyUDPConn, to *net.UDPAddr, timeout time.Duration) (err error) { +func (s *Server) relayUDP(lc adapter.UDPConn, rc cs.HyUDPConn, to *net.UDPAddr, timeout time.Duration) (err error) { errChan := make(chan error, 2) // local => remote go func() { diff --git a/build.ps1 b/build.ps1 index 462beb5..e97014c 100644 --- a/build.ps1 +++ b/build.ps1 @@ -59,7 +59,7 @@ foreach ($platform in $platforms) { if ($env:GOOS -eq "windows") { $output = "$output.exe" } - go build -o $output -tags=gpl -ldflags $ldflags -trimpath ./cmd/ + go build -o $output -tags=gpl -ldflags $ldflags -trimpath ./app/cmd/ if ($LastExitCode -ne 0) { Write-Host "Error: failed to build $env:GOOS/$env:GOARCH" -ForegroundColor Red exit 1 diff --git a/build.sh b/build.sh index 1c36dcb..1a4f5fa 100755 --- a/build.sh +++ b/build.sh @@ -52,7 +52,7 @@ for platform in "${platforms[@]}"; do if [ $GOOS = "windows" ]; then output="$output.exe" fi - env GOOS=$GOOS GOARCH=$GOARCH CGO_ENABLED=0 go build -o $output -tags=gpl -ldflags "$ldflags" -trimpath ./cmd/ + env GOOS=$GOOS GOARCH=$GOARCH CGO_ENABLED=0 go build -o $output -tags=gpl -ldflags "$ldflags" -trimpath ./app/cmd/ if [ $? -ne 0 ]; then echo "Error: failed to build $GOOS/$GOARCH" exit 1 diff --git a/pkg/acl/engine.go b/core/acl/engine.go similarity index 98% rename from pkg/acl/engine.go rename to core/acl/engine.go index 95f2b3c..679c971 100644 --- a/pkg/acl/engine.go +++ b/core/acl/engine.go @@ -8,7 +8,7 @@ import ( lru "github.com/hashicorp/golang-lru/v2" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/utils" "github.com/oschwald/geoip2-golang" ) diff --git a/pkg/acl/engine_test.go b/core/acl/engine_test.go similarity index 100% rename from pkg/acl/engine_test.go rename to core/acl/engine_test.go diff --git a/pkg/acl/entry.go b/core/acl/entry.go similarity index 100% rename from pkg/acl/entry.go rename to core/acl/entry.go diff --git a/pkg/acl/entry_test.go b/core/acl/entry_test.go similarity index 100% rename from pkg/acl/entry_test.go rename to core/acl/entry_test.go diff --git a/pkg/congestion/brutal.go b/core/congestion/brutal.go similarity index 100% rename from pkg/congestion/brutal.go rename to core/congestion/brutal.go diff --git a/pkg/congestion/pacer.go b/core/congestion/pacer.go similarity index 100% rename from pkg/congestion/pacer.go rename to core/congestion/pacer.go diff --git a/pkg/core/client.go b/core/cs/client.go similarity index 98% rename from pkg/core/client.go rename to core/cs/client.go index f6dc0ca..971d312 100644 --- a/pkg/core/client.go +++ b/core/cs/client.go @@ -1,4 +1,4 @@ -package core +package cs import ( "bytes" @@ -12,12 +12,12 @@ import ( "sync" "time" - "github.com/apernet/hysteria/pkg/pktconns" + "github.com/apernet/hysteria/core/pktconns" - "github.com/apernet/hysteria/pkg/congestion" + "github.com/apernet/hysteria/core/congestion" - "github.com/apernet/hysteria/pkg/pmtud" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/pmtud" + "github.com/apernet/hysteria/core/utils" "github.com/lucas-clemente/quic-go" "github.com/lunixbochs/struc" ) diff --git a/pkg/core/frag.go b/core/cs/frag.go similarity index 99% rename from pkg/core/frag.go rename to core/cs/frag.go index 7a38774..c9e491d 100644 --- a/pkg/core/frag.go +++ b/core/cs/frag.go @@ -1,4 +1,4 @@ -package core +package cs func fragUDPMessage(m udpMessage, maxSize int) []udpMessage { if m.Size() <= maxSize { diff --git a/pkg/core/frag_test.go b/core/cs/frag_test.go similarity index 99% rename from pkg/core/frag_test.go rename to core/cs/frag_test.go index aa1c616..b0c27cb 100644 --- a/pkg/core/frag_test.go +++ b/core/cs/frag_test.go @@ -1,4 +1,4 @@ -package core +package cs import ( "reflect" diff --git a/pkg/core/protocol.go b/core/cs/protocol.go similarity index 99% rename from pkg/core/protocol.go rename to core/cs/protocol.go index 6359ff9..2c1cef9 100644 --- a/pkg/core/protocol.go +++ b/core/cs/protocol.go @@ -1,4 +1,4 @@ -package core +package cs import ( "time" diff --git a/pkg/core/server.go b/core/cs/server.go similarity index 96% rename from pkg/core/server.go rename to core/cs/server.go index 8b30952..230903d 100644 --- a/pkg/core/server.go +++ b/core/cs/server.go @@ -1,4 +1,4 @@ -package core +package cs import ( "context" @@ -7,11 +7,11 @@ import ( "fmt" "net" - "github.com/apernet/hysteria/pkg/congestion" + "github.com/apernet/hysteria/core/congestion" - "github.com/apernet/hysteria/pkg/acl" - "github.com/apernet/hysteria/pkg/pmtud" - "github.com/apernet/hysteria/pkg/transport" + "github.com/apernet/hysteria/core/acl" + "github.com/apernet/hysteria/core/pmtud" + "github.com/apernet/hysteria/core/transport" "github.com/lucas-clemente/quic-go" "github.com/lunixbochs/struc" "github.com/prometheus/client_golang/prometheus" diff --git a/pkg/core/server_client.go b/core/cs/server_client.go similarity index 98% rename from pkg/core/server_client.go rename to core/cs/server_client.go index 893c7aa..4d2c9f6 100644 --- a/pkg/core/server_client.go +++ b/core/cs/server_client.go @@ -1,4 +1,4 @@ -package core +package cs import ( "bytes" @@ -9,9 +9,9 @@ import ( "strconv" "sync" - "github.com/apernet/hysteria/pkg/acl" - "github.com/apernet/hysteria/pkg/transport" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/acl" + "github.com/apernet/hysteria/core/transport" + "github.com/apernet/hysteria/core/utils" "github.com/lucas-clemente/quic-go" "github.com/lunixbochs/struc" "github.com/prometheus/client_golang/prometheus" diff --git a/pkg/core/stream.go b/core/cs/stream.go similarity index 99% rename from pkg/core/stream.go rename to core/cs/stream.go index 65259e4..8670470 100644 --- a/pkg/core/stream.go +++ b/core/cs/stream.go @@ -1,4 +1,4 @@ -package core +package cs import ( "context" diff --git a/pkg/pktconns/faketcp/LICENSE b/core/pktconns/faketcp/LICENSE similarity index 100% rename from pkg/pktconns/faketcp/LICENSE rename to core/pktconns/faketcp/LICENSE diff --git a/pkg/pktconns/faketcp/obfs.go b/core/pktconns/faketcp/obfs.go similarity index 97% rename from pkg/pktconns/faketcp/obfs.go rename to core/pktconns/faketcp/obfs.go index f8d89f9..ead2281 100644 --- a/pkg/pktconns/faketcp/obfs.go +++ b/core/pktconns/faketcp/obfs.go @@ -6,7 +6,7 @@ import ( "syscall" "time" - "github.com/apernet/hysteria/pkg/pktconns/obfs" + "github.com/apernet/hysteria/core/pktconns/obfs" ) const udpBufferSize = 4096 diff --git a/pkg/pktconns/faketcp/tcp_linux.go b/core/pktconns/faketcp/tcp_linux.go similarity index 100% rename from pkg/pktconns/faketcp/tcp_linux.go rename to core/pktconns/faketcp/tcp_linux.go diff --git a/pkg/pktconns/faketcp/tcp_stub.go b/core/pktconns/faketcp/tcp_stub.go similarity index 100% rename from pkg/pktconns/faketcp/tcp_stub.go rename to core/pktconns/faketcp/tcp_stub.go diff --git a/pkg/pktconns/faketcp/tcp_test.go b/core/pktconns/faketcp/tcp_test.go similarity index 100% rename from pkg/pktconns/faketcp/tcp_test.go rename to core/pktconns/faketcp/tcp_test.go diff --git a/pkg/pktconns/funcs.go b/core/pktconns/funcs.go similarity index 96% rename from pkg/pktconns/funcs.go rename to core/pktconns/funcs.go index 23427c4..b0675f1 100644 --- a/pkg/pktconns/funcs.go +++ b/core/pktconns/funcs.go @@ -5,10 +5,10 @@ import ( "strings" "time" - "github.com/apernet/hysteria/pkg/pktconns/faketcp" - "github.com/apernet/hysteria/pkg/pktconns/obfs" - "github.com/apernet/hysteria/pkg/pktconns/udp" - "github.com/apernet/hysteria/pkg/pktconns/wechat" + "github.com/apernet/hysteria/core/pktconns/faketcp" + "github.com/apernet/hysteria/core/pktconns/obfs" + "github.com/apernet/hysteria/core/pktconns/udp" + "github.com/apernet/hysteria/core/pktconns/wechat" ) type ( diff --git a/pkg/pktconns/obfs/obfs.go b/core/pktconns/obfs/obfs.go similarity index 100% rename from pkg/pktconns/obfs/obfs.go rename to core/pktconns/obfs/obfs.go diff --git a/pkg/pktconns/obfs/obfs_test.go b/core/pktconns/obfs/obfs_test.go similarity index 100% rename from pkg/pktconns/obfs/obfs_test.go rename to core/pktconns/obfs/obfs_test.go diff --git a/pkg/pktconns/udp/hop.go b/core/pktconns/udp/hop.go similarity index 99% rename from pkg/pktconns/udp/hop.go rename to core/pktconns/udp/hop.go index e1e4f9e..4458131 100644 --- a/pkg/pktconns/udp/hop.go +++ b/core/pktconns/udp/hop.go @@ -10,7 +10,7 @@ import ( "syscall" "time" - "github.com/apernet/hysteria/pkg/pktconns/obfs" + "github.com/apernet/hysteria/core/pktconns/obfs" ) const ( diff --git a/pkg/pktconns/udp/hop_test.go b/core/pktconns/udp/hop_test.go similarity index 100% rename from pkg/pktconns/udp/hop_test.go rename to core/pktconns/udp/hop_test.go diff --git a/pkg/pktconns/udp/obfs.go b/core/pktconns/udp/obfs.go similarity index 97% rename from pkg/pktconns/udp/obfs.go rename to core/pktconns/udp/obfs.go index 7aee8a9..9f1165e 100644 --- a/pkg/pktconns/udp/obfs.go +++ b/core/pktconns/udp/obfs.go @@ -7,7 +7,7 @@ import ( "syscall" "time" - "github.com/apernet/hysteria/pkg/pktconns/obfs" + "github.com/apernet/hysteria/core/pktconns/obfs" ) const udpBufferSize = 4096 diff --git a/pkg/pktconns/wechat/obfs.go b/core/pktconns/wechat/obfs.go similarity index 98% rename from pkg/pktconns/wechat/obfs.go rename to core/pktconns/wechat/obfs.go index 62a4d6b..e6935f7 100644 --- a/pkg/pktconns/wechat/obfs.go +++ b/core/pktconns/wechat/obfs.go @@ -9,7 +9,7 @@ import ( "syscall" "time" - "github.com/apernet/hysteria/pkg/pktconns/obfs" + "github.com/apernet/hysteria/core/pktconns/obfs" ) const udpBufferSize = 4096 diff --git a/pkg/pmtud/avail.go b/core/pmtud/avail.go similarity index 100% rename from pkg/pmtud/avail.go rename to core/pmtud/avail.go diff --git a/pkg/pmtud/unavail.go b/core/pmtud/unavail.go similarity index 100% rename from pkg/pmtud/unavail.go rename to core/pmtud/unavail.go diff --git a/pkg/sockopt/sockopt.go b/core/sockopt/sockopt.go similarity index 100% rename from pkg/sockopt/sockopt.go rename to core/sockopt/sockopt.go diff --git a/pkg/sockopt/sockopt_linux.go b/core/sockopt/sockopt_linux.go similarity index 100% rename from pkg/sockopt/sockopt_linux.go rename to core/sockopt/sockopt_linux.go diff --git a/pkg/sockopt/sockopt_others.go b/core/sockopt/sockopt_others.go similarity index 100% rename from pkg/sockopt/sockopt_others.go rename to core/sockopt/sockopt_others.go diff --git a/pkg/transport/client.go b/core/transport/client.go similarity index 100% rename from pkg/transport/client.go rename to core/transport/client.go diff --git a/pkg/transport/resolve.go b/core/transport/resolve.go similarity index 100% rename from pkg/transport/resolve.go rename to core/transport/resolve.go diff --git a/pkg/transport/server.go b/core/transport/server.go similarity index 96% rename from pkg/transport/server.go rename to core/transport/server.go index b32f7e9..dee4af2 100644 --- a/pkg/transport/server.go +++ b/core/transport/server.go @@ -5,8 +5,8 @@ import ( "strconv" "time" - "github.com/apernet/hysteria/pkg/sockopt" - "github.com/apernet/hysteria/pkg/utils" + "github.com/apernet/hysteria/core/sockopt" + "github.com/apernet/hysteria/core/utils" ) type ServerTransport struct { diff --git a/pkg/transport/socks5.go b/core/transport/socks5.go similarity index 100% rename from pkg/transport/socks5.go rename to core/transport/socks5.go diff --git a/pkg/utils/misc.go b/core/utils/misc.go similarity index 100% rename from pkg/utils/misc.go rename to core/utils/misc.go diff --git a/pkg/utils/pipe.go b/core/utils/pipe.go similarity index 100% rename from pkg/utils/pipe.go rename to core/utils/pipe.go From ed14540d2616b73acbd0e2bd2001f230571387ac Mon Sep 17 00:00:00 2001 From: Haruue Icymoon Date: Thu, 24 Nov 2022 17:13:25 +0800 Subject: [PATCH 2/3] chore: split go modules & create go workspace --- go.mod => app/go.mod | 15 +- go.sum => app/go.sum | 0 core/go.mod | 46 ++++ core/go.sum | 545 +++++++++++++++++++++++++++++++++++++++++++ go.work | 6 + go.work.sum | 1 + 6 files changed, 607 insertions(+), 6 deletions(-) rename go.mod => app/go.mod (90%) rename go.sum => app/go.sum (100%) create mode 100644 core/go.mod create mode 100644 core/go.sum create mode 100644 go.work create mode 100644 go.work.sum diff --git a/go.mod b/app/go.mod similarity index 90% rename from go.mod rename to app/go.mod index 3717e34..71330a2 100644 --- a/go.mod +++ b/app/go.mod @@ -1,21 +1,18 @@ -module github.com/apernet/hysteria +module github.com/apernet/hysteria/app go 1.18 require ( github.com/LiamHaworth/go-tproxy v0.0.0-20190726054950-ef7efd7f24ed github.com/antonfisher/nested-logrus-formatter v1.3.1 + github.com/apernet/hysteria/core v0.0.0-00010101000000-000000000000 github.com/caddyserver/certmagic v0.17.2 - github.com/coreos/go-iptables v0.6.0 github.com/docker/go-units v0.5.0 github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 github.com/elazarl/goproxy/ext v0.0.0-20221015165544-a0805db90819 github.com/folbricht/routedns v0.1.6-0.20220806202012-361f5b35b4c3 github.com/fsnotify/fsnotify v1.6.0 - github.com/google/gopacket v1.1.19 - github.com/hashicorp/golang-lru/v2 v2.0.1 github.com/lucas-clemente/quic-go v0.31.0 - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 github.com/oschwald/geoip2-golang v1.8.0 github.com/prometheus/client_golang v1.14.0 github.com/sirupsen/logrus v1.9.0 @@ -25,7 +22,6 @@ require ( github.com/xjasonlyu/tun2socks/v2 v2.4.1 github.com/yosuke-furukawa/json5 v0.1.1 go.uber.org/zap v1.23.0 - golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06 gvisor.dev/gvisor v0.0.0-20220405222207-795f4f0139bb ) @@ -33,16 +29,20 @@ require ( github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/coreos/go-iptables v0.6.0 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/btree v1.0.1 // indirect + github.com/google/gopacket v1.1.19 // indirect github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.1 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/jtacoma/uritemplates v1.0.0 // indirect github.com/klauspost/cpuid/v2 v2.1.1 // indirect github.com/libdns/libdns v0.2.1 // indirect + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/marten-seemann/qpack v0.3.0 // indirect github.com/marten-seemann/qtls-go1-18 v0.1.3 // indirect @@ -77,6 +77,7 @@ require ( golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect + golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06 // indirect golang.org/x/text v0.4.0 // indirect golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect golang.org/x/tools v0.1.12 // indirect @@ -89,6 +90,8 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) +replace github.com/apernet/hysteria/core => ../core/ + replace github.com/lucas-clemente/quic-go => github.com/apernet/quic-go v0.31.1-0.20221119235156-55bf700f2dd4 replace github.com/LiamHaworth/go-tproxy => github.com/apernet/go-tproxy v0.0.0-20221025153553-ed04a2935f88 diff --git a/go.sum b/app/go.sum similarity index 100% rename from go.sum rename to app/go.sum diff --git a/core/go.mod b/core/go.mod new file mode 100644 index 0000000..f69a64a --- /dev/null +++ b/core/go.mod @@ -0,0 +1,46 @@ +module github.com/apernet/hysteria/core + +go 1.18 + +require ( + github.com/coreos/go-iptables v0.6.0 + github.com/google/gopacket v1.1.19 + github.com/hashicorp/golang-lru/v2 v2.0.1 + github.com/lucas-clemente/quic-go v0.31.0 + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 + github.com/oschwald/geoip2-golang v1.8.0 + github.com/prometheus/client_golang v1.14.0 + github.com/txthinking/socks5 v0.0.0-20220212043548-414499347d4a + golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06 +) + +require ( + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/golang/mock v1.6.0 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/google/go-cmp v0.5.9 // indirect + github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect + github.com/marten-seemann/qtls-go1-18 v0.1.3 // indirect + github.com/marten-seemann/qtls-go1-19 v0.1.1 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/onsi/ginkgo/v2 v2.2.0 // indirect + github.com/oschwald/maxminddb-golang v1.10.0 // indirect + github.com/patrickmn/go-cache v2.1.0+incompatible // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.37.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect + github.com/stretchr/testify v1.8.1 // indirect + github.com/txthinking/runnergroup v0.0.0-20210608031112-152c7c4432bf // indirect + github.com/txthinking/x v0.0.0-20210326105829-476fab902fbe // indirect + golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect + golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect + golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect + golang.org/x/text v0.4.0 // indirect + golang.org/x/tools v0.1.12 // indirect + google.golang.org/protobuf v1.28.1 // indirect +) + +replace github.com/lucas-clemente/quic-go => github.com/apernet/quic-go v0.31.1-0.20221119235156-55bf700f2dd4 diff --git a/core/go.sum b/core/go.sum new file mode 100644 index 0000000..411ab87 --- /dev/null +++ b/core/go.sum @@ -0,0 +1,545 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/apernet/quic-go v0.31.1-0.20221119235156-55bf700f2dd4 h1:rNk86XSaAK/nPyab0ZxI2uRWwYqse9JehOVG+ijOh0I= +github.com/apernet/quic-go v0.31.1-0.20221119235156-55bf700f2dd4/go.mod h1:0wFbizLgYzqHqtlyxyCaJKlE7bYgE6JQ+54TLd/Dq2g= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk= +github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= +github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru/v2 v2.0.1 h1:5pv5N1lT1fjLg2VQ5KWc7kmucp2x/kvFOnxuVTqZ6x4= +github.com/hashicorp/golang-lru/v2 v2.0.1/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= +github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= +github.com/marten-seemann/qtls-go1-18 v0.1.3 h1:R4H2Ks8P6pAtUagjFty2p7BVHn3XiwDAl7TTQf5h7TI= +github.com/marten-seemann/qtls-go1-18 v0.1.3/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= +github.com/marten-seemann/qtls-go1-19 v0.1.1 h1:mnbxeq3oEyQxQXwI4ReCgW9DPoPR94sNlqWoDZnjRIE= +github.com/marten-seemann/qtls-go1-19 v0.1.1/go.mod h1:5HTDWtVudo/WFsHKRNuOhWlbdjrfs5JHrYb0wIJqGpI= +github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/onsi/ginkgo/v2 v2.2.0 h1:3ZNA3L1c5FYDFTTxbFeVGGD8jYvjYauHD30YgLxVsNI= +github.com/onsi/ginkgo/v2 v2.2.0/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= +github.com/onsi/gomega v1.20.1 h1:PA/3qinGoukvymdIDV8pii6tiZgC8kbmJO6Z5+b002Q= +github.com/oschwald/geoip2-golang v1.8.0 h1:KfjYB8ojCEn/QLqsDU0AzrJ3R5Qa9vFlx3z6SLNcKTs= +github.com/oschwald/geoip2-golang v1.8.0/go.mod h1:R7bRvYjOeaoenAp9sKRS8GX5bJWcZ0laWO5+DauEktw= +github.com/oschwald/maxminddb-golang v1.10.0 h1:Xp1u0ZhqkSuopaKmk1WwHtjF0H9Hd9181uj2MQ5Vndg= +github.com/oschwald/maxminddb-golang v1.10.0/go.mod h1:Y2ELenReaLAZ0b400URyGwvYxHV1dLIxBuyOsyYjHK0= +github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= +github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/txthinking/runnergroup v0.0.0-20210608031112-152c7c4432bf h1:7PflaKRtU4np/epFxRXlFhlzLXZzKFrH5/I4so5Ove0= +github.com/txthinking/runnergroup v0.0.0-20210608031112-152c7c4432bf/go.mod h1:CLUSJbazqETbaR+i0YAhXBICV9TrKH93pziccMhmhpM= +github.com/txthinking/socks5 v0.0.0-20220212043548-414499347d4a h1:BOqgJ4jku0LHPDoR51RD8Mxmo0LHxCzJT/M9MemYdHo= +github.com/txthinking/socks5 v0.0.0-20220212043548-414499347d4a/go.mod h1:7NloQcrxaZYKURWph5HLxVDlIwMHJXCPkeWPtpftsIg= +github.com/txthinking/x v0.0.0-20210326105829-476fab902fbe h1:gMWxZxBFRAXqoGkwkYlPX2zvyyKNWJpxOxCrjqJkm5A= +github.com/txthinking/x v0.0.0-20210326105829-476fab902fbe/go.mod h1:WgqbSEmUYSjEV3B1qmee/PpP2NYEz4bL9/+mF1ma+s4= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20221014081412-f15817d10f9b h1:tvrvnPFcdzp294diPnrdZZZ8XUt2Tyj7svb7X52iDuU= +golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06 h1:E1pm64FqQa4v8dHd/bAneyMkR4hk8LTJhoSlc5mc1cM= +golang.org/x/sys v0.1.1-0.20221102194838-fc697a31fa06/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/go.work b/go.work new file mode 100644 index 0000000..5a60920 --- /dev/null +++ b/go.work @@ -0,0 +1,6 @@ +go 1.18 + +use ( + ./app + ./core +) diff --git a/go.work.sum b/go.work.sum new file mode 100644 index 0000000..3773632 --- /dev/null +++ b/go.work.sum @@ -0,0 +1 @@ +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= From 73df9973d0b8c6dc529f1cccd358abdc32a70810 Mon Sep 17 00:00:00 2001 From: Toby Date: Thu, 24 Nov 2022 11:40:03 -0800 Subject: [PATCH 3/3] fix: Taskfile build path --- Taskfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Taskfile.yaml b/Taskfile.yaml index a77430a..0d9c04b 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -16,7 +16,7 @@ tasks: cmds: - | GOOS={{.GOOS}} GOARCH={{.GOARCH}} GOARM={{.GOARM}} GOMIPS={{.GOMIPS}} \ - go build -trimpath -o ../dist/hysteria-{{.TASK}} -ldflags \ + go build -trimpath -o ../../dist/hysteria-{{.TASK}} -ldflags \ "-w -s -X main.appCommit={{.BUILD_COMMIT}} -X main.appDate={{.BUILD_DATE}}" linux-386: cmds: