diff --git a/go.mod b/go.mod
index 17050b485f..e772e9f528 100644
--- a/go.mod
+++ b/go.mod
@@ -12,7 +12,7 @@ replace (
require (
github.com/blang/semver/v4 v4.0.0
github.com/cilium/charts v0.0.0-20230526205117-9c16d4d680bb
- github.com/cilium/cilium v1.14.0-snapshot.2
+ github.com/cilium/cilium v1.14.0-snapshot.3
github.com/cilium/hubble v0.11.5
github.com/cilium/proxy v0.0.0-20230420184820-797bea843de1
github.com/cilium/tetragon/pkg/k8s v0.0.0-20230530162345-26256999192b
@@ -87,7 +87,7 @@ require (
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/loads v0.21.2 // indirect
- github.com/go-openapi/runtime v0.25.0 // indirect
+ github.com/go-openapi/runtime v0.26.0 // indirect
github.com/go-openapi/spec v0.20.9 // indirect
github.com/go-openapi/swag v0.22.3 // indirect
github.com/go-openapi/validate v0.22.1 // indirect
@@ -161,7 +161,7 @@ require (
github.com/rubenv/sql-migrate v1.3.1 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sasha-s/go-deadlock v0.3.1 // indirect
- github.com/shirou/gopsutil/v3 v3.23.2 // indirect
+ github.com/shirou/gopsutil/v3 v3.23.4 // indirect
github.com/shopspring/decimal v1.3.1 // indirect
github.com/sirupsen/logrus v1.9.0 // indirect
github.com/spf13/afero v1.9.5 // indirect
@@ -173,7 +173,7 @@ require (
github.com/tklauser/go-sysconf v0.3.11 // indirect
github.com/tklauser/numcpus v0.6.0 // indirect
github.com/ulikunitz/xz v0.5.10 // indirect
- github.com/vishvananda/netlink v1.2.1-beta.2.0.20220608195807-1a118fe229fc // indirect
+ github.com/vishvananda/netlink v1.2.1-beta.2.0.20230420174744-55c8b9515a01 // indirect
github.com/vishvananda/netns v0.0.4 // indirect
github.com/weppos/publicsuffix-go v0.15.1-0.20210511084619-b1f36a2d6c0b // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
@@ -185,13 +185,13 @@ require (
github.com/zmap/zcrypto v0.0.0-20210511125630-18f1e0152cfc // indirect
github.com/zmap/zlint/v3 v3.1.0 // indirect
go.mongodb.org/mongo-driver v1.11.4 // indirect
- go.opentelemetry.io/otel v1.14.0 // indirect
- go.opentelemetry.io/otel/trace v1.14.0 // indirect
+ go.opentelemetry.io/otel v1.15.1 // indirect
+ go.opentelemetry.io/otel/trace v1.15.1 // indirect
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
- golang.org/x/crypto v0.8.0 // indirect
+ golang.org/x/crypto v0.9.0 // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/oauth2 v0.8.0 // indirect
- golang.org/x/sync v0.1.0 // indirect
+ golang.org/x/sync v0.2.0 // indirect
golang.org/x/sys v0.8.0 // indirect
golang.org/x/term v0.8.0 // indirect
golang.org/x/text v0.9.0 // indirect
diff --git a/go.sum b/go.sum
index af7b437768..a000c83159 100644
--- a/go.sum
+++ b/go.sum
@@ -109,8 +109,9 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/cilium/charts v0.0.0-20230526205117-9c16d4d680bb h1:tPGCBqAbY70NT2CkrpW5r0lZgJFClOE7u5s4pvAI2nk=
github.com/cilium/charts v0.0.0-20230526205117-9c16d4d680bb/go.mod h1:M3C9VOlFvRzuV+a01t07Tw4uFLSfkCH3L542IWjf6BU=
-github.com/cilium/cilium v1.14.0-snapshot.2 h1:/1DnRa9slnnMULoKJI+aJI7FI9ynpHhbRcr40RljWUU=
-github.com/cilium/cilium v1.14.0-snapshot.2/go.mod h1:UAR5ZhCtGcK1fiIhws0dAUB9Y2HuwBgJlDTQtx4MSok=
+github.com/cilium/checkmate v1.0.3 h1:CQC5eOmlAZeEjPrVZY3ZwEBH64lHlx9mXYdUehEwI5w=
+github.com/cilium/cilium v1.14.0-snapshot.3 h1:qtZMgr/QDK5qVdGkQDrohwaCmqseCK7jiWvM23jcRoQ=
+github.com/cilium/cilium v1.14.0-snapshot.3/go.mod h1:M0N1gbFpzdFdCYmyZFArWeur7j2eDzkl2noVo0q1Xew=
github.com/cilium/dns v1.1.51-0.20220729113855-5b94b11b46fc h1:tNEOByqRaBwlf1ANK/U/sd5oOIkxkPkpCVqaabxvU84=
github.com/cilium/dns v1.1.51-0.20220729113855-5b94b11b46fc/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=
github.com/cilium/hubble v0.11.5 h1:1FGI+mNR+zx1B3jSqskmM4dV5smD/tuhTbXCdueuEfc=
@@ -250,8 +251,8 @@ github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En
github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g=
github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro=
github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw=
-github.com/go-openapi/runtime v0.25.0 h1:7yQTCdRbWhX8vnIjdzU8S00tBYf7Sg71EBeorlPHvhc=
-github.com/go-openapi/runtime v0.25.0/go.mod h1:Ux6fikcHXyyob6LNWxtE96hWwjBPYF0DXgVFuMTneOs=
+github.com/go-openapi/runtime v0.26.0 h1:HYOFtG00FM1UvqrcxbEJg/SwvDRvYLQKGhw2zaQjTcc=
+github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5WyE+EV88plZrQ=
github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA=
github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8=
@@ -612,7 +613,7 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
github.com/onsi/ginkgo/v2 v2.9.1 h1:zie5Ly042PD3bsCvsSOPvRnFwyo3rKe64TJlD6nu0mk=
-github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E=
+github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE=
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
@@ -700,8 +701,10 @@ github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71e
github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
-github.com/shirou/gopsutil/v3 v3.23.2 h1:PAWSuiAszn7IhPMBtXsbSCafej7PqUOvY6YywlQUExU=
-github.com/shirou/gopsutil/v3 v3.23.2/go.mod h1:gv0aQw33GLo3pG8SiWKiQrbDzbRY1K80RyZJ7V4Th1M=
+github.com/shirou/gopsutil/v3 v3.23.4 h1:hZwmDxZs7Ewt75DV81r4pFMqbq+di2cbt9FsQBqLD2o=
+github.com/shirou/gopsutil/v3 v3.23.4/go.mod h1:ZcGxyfzAMRevhUR2+cfhXDH6gQdFYE/t8j1nsU4mPI8=
+github.com/shoenig/go-m1cpu v0.1.5/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ=
+github.com/shoenig/test v0.6.3/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k=
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
@@ -777,8 +780,8 @@ github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oW
github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8=
github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
-github.com/vishvananda/netlink v1.2.1-beta.2.0.20220608195807-1a118fe229fc h1:2wzJ1cBcM23GetRJs2y6ETXrFMvp6HefTbFWtqviHZQ=
-github.com/vishvananda/netlink v1.2.1-beta.2.0.20220608195807-1a118fe229fc/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
+github.com/vishvananda/netlink v1.2.1-beta.2.0.20230420174744-55c8b9515a01 h1:F9xjJm4IH8VjcqG4ujciOF+GIM4mjPkHhWLLzOghPtM=
+github.com/vishvananda/netlink v1.2.1-beta.2.0.20230420174744-55c8b9515a01/go.mod h1:cAAsePK2e15YDAMJNyOpGYEWNe4sIghTY7gpz4cX/Ik=
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8=
github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM=
@@ -840,11 +843,11 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
-go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM=
-go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU=
+go.opentelemetry.io/otel v1.15.1 h1:3Iwq3lfRByPaws0f6bU3naAqOR1n5IeDWd9390kWHa8=
+go.opentelemetry.io/otel v1.15.1/go.mod h1:mHHGEHVDLal6YrKMmk9LqC4a3sF5g+fHfrttQIB1NTc=
go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY=
-go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M=
-go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8=
+go.opentelemetry.io/otel/trace v1.15.1 h1:uXLo6iHJEzDfrNC0L0mNjItIp06SyaBQxu5t3xMlngY=
+go.opentelemetry.io/otel/trace v1.15.1/go.mod h1:IWdQG/5N1x7f6YUlmdLeJvH9yxtuJAfc4VW5Agv9r/8=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc=
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o=
@@ -874,8 +877,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
-golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ=
-golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
+golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
+golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
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=
@@ -995,8 +998,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
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/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
-golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
+golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
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=
@@ -1038,7 +1041,6 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w
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-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1068,13 +1070,14 @@ golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220804214406-8e32c043e418/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
@@ -1164,7 +1167,7 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y=
+golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo=
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=
diff --git a/vendor/github.com/cilium/cilium/AUTHORS b/vendor/github.com/cilium/cilium/AUTHORS
index c3e845e78f..2b08784c63 100644
--- a/vendor/github.com/cilium/cilium/AUTHORS
+++ b/vendor/github.com/cilium/cilium/AUTHORS
@@ -37,6 +37,7 @@ Andree Klattenhoff mail@andr.ee
André Martins andre@cilium.io
Andrew Bulford andrew.bulford@form3.tech
Andrew Holt andrew.holt@utmost.co
+Andrew Sauber 2046750+asauber@users.noreply.github.com
Andrew Sy Kim kim.andrewsy@gmail.com
Andrey Devyatkin andrey.devyatkin@fivexl.io
Andrey Klimentyev andrey.klimentyev@flant.com
@@ -67,10 +68,12 @@ Assiya Khuzyakhmetova assiya.khuzyakhmetova@nu.edu.kz
Atkins Chang atkinschang@gmail.com
Augustas Berneckas a.berneckas@gmail.com
Austin Cawley-Edwards austin.cawley@gmail.com
+ayesha khaliq ayeshakhaliqrana@gmail.com
Ayush Dwivedi ayush.dwivedi@accuknox.com
Barun Acharya barun1024@gmail.com
Basit Mustafa basit.mustafa@gmail.com
Beatriz Martínez beatriz@isovalent.com
+Benjamin Leggett benjamin.leggett@solo.io
Benjamin Pineau benjamin.pineau@datadoghq.com
Bill Mulligan billmulligan516@gmail.com
Bingshen Wang bingshen.wbs@alibaba-inc.com
@@ -123,9 +126,11 @@ Cyril Corbon corboncyril@gmail.com
Cyril Scetbon cscetbon@gmail.com
Dale Ragan dale.ragan@sap.com
Dalton Hubble dghubble@gmail.com
+Daneyon Hansen daneyon.hansen@solo.io
Đặng Minh Dũng dungdm93@live.com
Daniel Borkmann daniel@iogearbox.net
Daniel Dao dqminh89@gmail.com
+Daniel Hawton daniel.hawton@solo.io
Daniel Qian qsj.daniel@gmail.com
Daniel T. Lee danieltimlee@gmail.com
Danni Skov Høglund skuffe@pwnz.dk
@@ -155,6 +160,7 @@ Devarshi Sathiya devarshisathiya5@gmail.com
Dharma Bellamkonda dharma.bellamkonda@gmail.com
Didier Durand durand.didier@gmail.com
Diego Casati diego.casati@gmail.com
+Dima Pugachev krabradosty@gmail.com
Divine Odazie dodazie@gmail.com
Divya Mohan divya.mohan0209@gmail.com
Divyansh Kamboj divyansh.kamboj@accuknox.com
@@ -246,6 +252,7 @@ Ivan Makarychev i.makarychev@tinkoff.ru
Ivar Lazzaro ivarlazzaro@gmail.com
Jaff Cheng jaff.cheng.sh@gmail.com
Jaime Caamaño Ruiz jcaamano@suse.com
+James Brookes jbrookes@confluent.io
James McShane james.mcshane@superorbital.io
Jan-Erik Rediger janerik@fnordig.de
Jarno Rajahalme jarno@isovalent.com
@@ -280,6 +287,7 @@ Jonathan Davies jpds@protonmail.com
Jones Shi shilei@hotstone.com.cn
Jorik Jonker jorik.jonker@eu.equinix.com
Joseph-Irving joseph.irving500@gmail.com
+Joseph Sheng jiajun.sheng@microfocus.com
Joseph Stevens thejosephstevens@gmail.com
Joshua Roppo joshroppo@gmail.com
Juan Jimenez-Anca cortopy@users.noreply.github.com
@@ -315,6 +323,7 @@ leonliao xiaobo.liao@gmail.com
Liang Zhou zhoul110@chinatelecom.cn
Li Chengyuan chengyuanli@hotmail.com
LiHui andrewli@yunify.com
+Lin Dong lindongld@google.com
Lin Sun lin.sun@solo.io
Lior Rozen liorr@tailorbrands.com
Liu Qun qunliu@zyhx-group.com
@@ -353,11 +362,13 @@ Marga Manterola marga@isovalent.com
Mario Constanti mario@constanti.de
Marius Gerling marius.gerling@uniberg.com
Mark deVilliers markdevilliers@gmail.com
+Mark Pashmfouroush mark@isovalent.com
Markus Blaschke mblaschke82@gmail.com
Martin Charles martincharles07@gmail.com
Martin Koppehel martin.koppehel@st.ovgu.de
Martin Odstrcilik martin.odstrcilik@gmail.com
Martynas Pumputis m@lambda.lt
+Marvin Gaube dev@marvingaube.de
Marwin Baumann 56264798+marwinbaumannsbp@users.noreply.github.com
Matej Gera matejgera@gmail.com
Mathias Herzog mathu@gmx.ch
@@ -368,6 +379,7 @@ Matthew Fenwick mfenwick100@gmail.com
Matthew Gumport me@gum.pt
Matthieu Antoine matthieu.antoine@jumo.world
Matt Layher mdlayher@gmail.com
+Matyáš Kroupa kroupa.matyas@gmail.com
Mauricio Vásquez mauricio@kinvolk.io
Maxime Brunet max@brnt.mx
Maxime Visonneau maxime.visonneau@gmail.com
@@ -443,7 +455,9 @@ Paulo Gomes pjbgf@linux.com
Pavel Pavlov 40396270+PavelPavlov46@users.noreply.github.com
Paweł Prażak pawelprazak@users.noreply.github.com
Peiqi Shi uestc.shi@gmail.com
+pengbinbin1 pengbiny@163.com
Pengfei Song pengfei.song@daocloud.io
+Peter Jausovec peter.jausovec@solo.io
Peter Slovak slovak.peto@gmail.com
Philippe Lafoucrière philippe.lafoucriere@gmail.com
Philipp Gniewosz philipp.gniewosz@daimlertruck.com
@@ -464,7 +478,7 @@ Rahul Joshi rkjoshi@google.com
Rajat Jindal rajatjindal83@gmail.com
Raphael Campos raphael@accuknox.com
Raphaël Pinson raphael@isovalent.com
-Rastislav Szabo rastislav@kubermatic.com
+Rastislav Szabo rastislav.szabo@isovalent.com
Ray Bejjani ray.bejjani@gmail.com
Raymond de Jong raymond.dejong@isovalent.com
Reilly Brogan reilly@reillybrogan.com
@@ -574,7 +588,7 @@ Vigneshwaren Sunder vickymailed@gmail.com
Viktor Kuzmin kvaster@gmail.com
Viktor Oreshkin imselfish@stek29.rocks
Ville Ojamo bluikko@users.noreply.github.com
-Vincent Li v.li@f5.com
+Vincent Li vincent.mc.li@gmail.com
Vipul Singh vipul21sept@gmail.com
Vishal Choudhary sendtovishalchoudhary@gmail.com
Vishnu Soman K vishnusomank05@gmail.com
@@ -625,6 +639,7 @@ Zang Li zangli@google.com
zhanghe9702 zhanghe9702@163.com
Zhang Qiang qiangzhang@qiyi.com
Zhiyuan Hou zhiyuan2048@linux.alibaba.com
+zhouhaibing089 zhouhaibing089@gmail.com
Zhu Yan hackzhuyan@gmail.com
Zisis Lianas zl@consol.de
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/daemon/patch_config_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/daemon/patch_config_responses.go
index a70a9cf33c..87397f6750 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/daemon/patch_config_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/daemon/patch_config_responses.go
@@ -38,6 +38,12 @@ func (o *PatchConfigReader) ReadResponse(response runtime.ClientResponse, consum
return nil, err
}
return nil, result
+ case 403:
+ result := NewPatchConfigForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 500:
result := NewPatchConfigFailure()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -161,6 +167,57 @@ func (o *PatchConfigBadRequest) readResponse(response runtime.ClientResponse, co
return nil
}
+// NewPatchConfigForbidden creates a PatchConfigForbidden with default headers values
+func NewPatchConfigForbidden() *PatchConfigForbidden {
+ return &PatchConfigForbidden{}
+}
+
+/*
+PatchConfigForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PatchConfigForbidden struct {
+}
+
+// IsSuccess returns true when this patch config forbidden response has a 2xx status code
+func (o *PatchConfigForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this patch config forbidden response has a 3xx status code
+func (o *PatchConfigForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this patch config forbidden response has a 4xx status code
+func (o *PatchConfigForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this patch config forbidden response has a 5xx status code
+func (o *PatchConfigForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this patch config forbidden response a status code equal to that given
+func (o *PatchConfigForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PatchConfigForbidden) Error() string {
+ return fmt.Sprintf("[PATCH /config][%d] patchConfigForbidden ", 403)
+}
+
+func (o *PatchConfigForbidden) String() string {
+ return fmt.Sprintf("[PATCH /config][%d] patchConfigForbidden ", 403)
+}
+
+func (o *PatchConfigForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPatchConfigFailure creates a PatchConfigFailure with default headers values
func NewPatchConfigFailure() *PatchConfigFailure {
return &PatchConfigFailure{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/delete_endpoint_id_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/delete_endpoint_id_responses.go
index 67b86218c5..b99123fecb 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/delete_endpoint_id_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/delete_endpoint_id_responses.go
@@ -44,6 +44,12 @@ func (o *DeleteEndpointIDReader) ReadResponse(response runtime.ClientResponse, c
return nil, err
}
return nil, result
+ case 403:
+ result := NewDeleteEndpointIDForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 404:
result := NewDeleteEndpointIDNotFound()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -236,6 +242,57 @@ func (o *DeleteEndpointIDInvalid) readResponse(response runtime.ClientResponse,
return nil
}
+// NewDeleteEndpointIDForbidden creates a DeleteEndpointIDForbidden with default headers values
+func NewDeleteEndpointIDForbidden() *DeleteEndpointIDForbidden {
+ return &DeleteEndpointIDForbidden{}
+}
+
+/*
+DeleteEndpointIDForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type DeleteEndpointIDForbidden struct {
+}
+
+// IsSuccess returns true when this delete endpoint Id forbidden response has a 2xx status code
+func (o *DeleteEndpointIDForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this delete endpoint Id forbidden response has a 3xx status code
+func (o *DeleteEndpointIDForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this delete endpoint Id forbidden response has a 4xx status code
+func (o *DeleteEndpointIDForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this delete endpoint Id forbidden response has a 5xx status code
+func (o *DeleteEndpointIDForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this delete endpoint Id forbidden response a status code equal to that given
+func (o *DeleteEndpointIDForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *DeleteEndpointIDForbidden) Error() string {
+ return fmt.Sprintf("[DELETE /endpoint/{id}][%d] deleteEndpointIdForbidden ", 403)
+}
+
+func (o *DeleteEndpointIDForbidden) String() string {
+ return fmt.Sprintf("[DELETE /endpoint/{id}][%d] deleteEndpointIdForbidden ", 403)
+}
+
+func (o *DeleteEndpointIDForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewDeleteEndpointIDNotFound creates a DeleteEndpointIDNotFound with default headers values
func NewDeleteEndpointIDNotFound() *DeleteEndpointIDNotFound {
return &DeleteEndpointIDNotFound{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_config_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_config_responses.go
index ee7bdda314..fc2c4883a5 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_config_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_config_responses.go
@@ -38,6 +38,12 @@ func (o *PatchEndpointIDConfigReader) ReadResponse(response runtime.ClientRespon
return nil, err
}
return nil, result
+ case 403:
+ result := NewPatchEndpointIDConfigForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 404:
result := NewPatchEndpointIDConfigNotFound()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -163,6 +169,57 @@ func (o *PatchEndpointIDConfigInvalid) readResponse(response runtime.ClientRespo
return nil
}
+// NewPatchEndpointIDConfigForbidden creates a PatchEndpointIDConfigForbidden with default headers values
+func NewPatchEndpointIDConfigForbidden() *PatchEndpointIDConfigForbidden {
+ return &PatchEndpointIDConfigForbidden{}
+}
+
+/*
+PatchEndpointIDConfigForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PatchEndpointIDConfigForbidden struct {
+}
+
+// IsSuccess returns true when this patch endpoint Id config forbidden response has a 2xx status code
+func (o *PatchEndpointIDConfigForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this patch endpoint Id config forbidden response has a 3xx status code
+func (o *PatchEndpointIDConfigForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this patch endpoint Id config forbidden response has a 4xx status code
+func (o *PatchEndpointIDConfigForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this patch endpoint Id config forbidden response has a 5xx status code
+func (o *PatchEndpointIDConfigForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this patch endpoint Id config forbidden response a status code equal to that given
+func (o *PatchEndpointIDConfigForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PatchEndpointIDConfigForbidden) Error() string {
+ return fmt.Sprintf("[PATCH /endpoint/{id}/config][%d] patchEndpointIdConfigForbidden ", 403)
+}
+
+func (o *PatchEndpointIDConfigForbidden) String() string {
+ return fmt.Sprintf("[PATCH /endpoint/{id}/config][%d] patchEndpointIdConfigForbidden ", 403)
+}
+
+func (o *PatchEndpointIDConfigForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPatchEndpointIDConfigNotFound creates a PatchEndpointIDConfigNotFound with default headers values
func NewPatchEndpointIDConfigNotFound() *PatchEndpointIDConfigNotFound {
return &PatchEndpointIDConfigNotFound{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_labels_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_labels_responses.go
index 1aac9bc79e..d16eec5c36 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_labels_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_labels_responses.go
@@ -32,6 +32,12 @@ func (o *PatchEndpointIDLabelsReader) ReadResponse(response runtime.ClientRespon
return nil, err
}
return result, nil
+ case 403:
+ result := NewPatchEndpointIDLabelsForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 404:
result := NewPatchEndpointIDLabelsNotFound()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -106,6 +112,57 @@ func (o *PatchEndpointIDLabelsOK) readResponse(response runtime.ClientResponse,
return nil
}
+// NewPatchEndpointIDLabelsForbidden creates a PatchEndpointIDLabelsForbidden with default headers values
+func NewPatchEndpointIDLabelsForbidden() *PatchEndpointIDLabelsForbidden {
+ return &PatchEndpointIDLabelsForbidden{}
+}
+
+/*
+PatchEndpointIDLabelsForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PatchEndpointIDLabelsForbidden struct {
+}
+
+// IsSuccess returns true when this patch endpoint Id labels forbidden response has a 2xx status code
+func (o *PatchEndpointIDLabelsForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this patch endpoint Id labels forbidden response has a 3xx status code
+func (o *PatchEndpointIDLabelsForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this patch endpoint Id labels forbidden response has a 4xx status code
+func (o *PatchEndpointIDLabelsForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this patch endpoint Id labels forbidden response has a 5xx status code
+func (o *PatchEndpointIDLabelsForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this patch endpoint Id labels forbidden response a status code equal to that given
+func (o *PatchEndpointIDLabelsForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PatchEndpointIDLabelsForbidden) Error() string {
+ return fmt.Sprintf("[PATCH /endpoint/{id}/labels][%d] patchEndpointIdLabelsForbidden ", 403)
+}
+
+func (o *PatchEndpointIDLabelsForbidden) String() string {
+ return fmt.Sprintf("[PATCH /endpoint/{id}/labels][%d] patchEndpointIdLabelsForbidden ", 403)
+}
+
+func (o *PatchEndpointIDLabelsForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPatchEndpointIDLabelsNotFound creates a PatchEndpointIDLabelsNotFound with default headers values
func NewPatchEndpointIDLabelsNotFound() *PatchEndpointIDLabelsNotFound {
return &PatchEndpointIDLabelsNotFound{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_responses.go
index e2d4528b9b..7b28de272a 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/patch_endpoint_id_responses.go
@@ -38,6 +38,12 @@ func (o *PatchEndpointIDReader) ReadResponse(response runtime.ClientResponse, co
return nil, err
}
return nil, result
+ case 403:
+ result := NewPatchEndpointIDForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 404:
result := NewPatchEndpointIDNotFound()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -173,6 +179,57 @@ func (o *PatchEndpointIDInvalid) readResponse(response runtime.ClientResponse, c
return nil
}
+// NewPatchEndpointIDForbidden creates a PatchEndpointIDForbidden with default headers values
+func NewPatchEndpointIDForbidden() *PatchEndpointIDForbidden {
+ return &PatchEndpointIDForbidden{}
+}
+
+/*
+PatchEndpointIDForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PatchEndpointIDForbidden struct {
+}
+
+// IsSuccess returns true when this patch endpoint Id forbidden response has a 2xx status code
+func (o *PatchEndpointIDForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this patch endpoint Id forbidden response has a 3xx status code
+func (o *PatchEndpointIDForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this patch endpoint Id forbidden response has a 4xx status code
+func (o *PatchEndpointIDForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this patch endpoint Id forbidden response has a 5xx status code
+func (o *PatchEndpointIDForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this patch endpoint Id forbidden response a status code equal to that given
+func (o *PatchEndpointIDForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PatchEndpointIDForbidden) Error() string {
+ return fmt.Sprintf("[PATCH /endpoint/{id}][%d] patchEndpointIdForbidden ", 403)
+}
+
+func (o *PatchEndpointIDForbidden) String() string {
+ return fmt.Sprintf("[PATCH /endpoint/{id}][%d] patchEndpointIdForbidden ", 403)
+}
+
+func (o *PatchEndpointIDForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPatchEndpointIDNotFound creates a PatchEndpointIDNotFound with default headers values
func NewPatchEndpointIDNotFound() *PatchEndpointIDNotFound {
return &PatchEndpointIDNotFound{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/put_endpoint_id_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/put_endpoint_id_responses.go
index 502daa86aa..97147e563d 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/endpoint/put_endpoint_id_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/endpoint/put_endpoint_id_responses.go
@@ -38,6 +38,12 @@ func (o *PutEndpointIDReader) ReadResponse(response runtime.ClientResponse, cons
return nil, err
}
return nil, result
+ case 403:
+ result := NewPutEndpointIDForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 409:
result := NewPutEndpointIDExists()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -173,6 +179,57 @@ func (o *PutEndpointIDInvalid) readResponse(response runtime.ClientResponse, con
return nil
}
+// NewPutEndpointIDForbidden creates a PutEndpointIDForbidden with default headers values
+func NewPutEndpointIDForbidden() *PutEndpointIDForbidden {
+ return &PutEndpointIDForbidden{}
+}
+
+/*
+PutEndpointIDForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PutEndpointIDForbidden struct {
+}
+
+// IsSuccess returns true when this put endpoint Id forbidden response has a 2xx status code
+func (o *PutEndpointIDForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this put endpoint Id forbidden response has a 3xx status code
+func (o *PutEndpointIDForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this put endpoint Id forbidden response has a 4xx status code
+func (o *PutEndpointIDForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this put endpoint Id forbidden response has a 5xx status code
+func (o *PutEndpointIDForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this put endpoint Id forbidden response a status code equal to that given
+func (o *PutEndpointIDForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PutEndpointIDForbidden) Error() string {
+ return fmt.Sprintf("[PUT /endpoint/{id}][%d] putEndpointIdForbidden ", 403)
+}
+
+func (o *PutEndpointIDForbidden) String() string {
+ return fmt.Sprintf("[PUT /endpoint/{id}][%d] putEndpointIdForbidden ", 403)
+}
+
+func (o *PutEndpointIDForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPutEndpointIDExists creates a PutEndpointIDExists with default headers values
func NewPutEndpointIDExists() *PutEndpointIDExists {
return &PutEndpointIDExists{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/ipam/delete_ipam_ip_parameters.go b/vendor/github.com/cilium/cilium/api/v1/client/ipam/delete_ipam_ip_parameters.go
index 25fcac67f9..73cc82d519 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/ipam/delete_ipam_ip_parameters.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/ipam/delete_ipam_ip_parameters.go
@@ -66,7 +66,7 @@ type DeleteIpamIPParams struct {
/* IP.
- IP address or owner name
+ IP address
*/
IP string
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/ipam/delete_ipam_ip_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/ipam/delete_ipam_ip_responses.go
index 8f0e9acc0e..ae095b6799 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/ipam/delete_ipam_ip_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/ipam/delete_ipam_ip_responses.go
@@ -38,6 +38,12 @@ func (o *DeleteIpamIPReader) ReadResponse(response runtime.ClientResponse, consu
return nil, err
}
return nil, result
+ case 403:
+ result := NewDeleteIpamIPForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 404:
result := NewDeleteIpamIPNotFound()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -163,6 +169,57 @@ func (o *DeleteIpamIPInvalid) readResponse(response runtime.ClientResponse, cons
return nil
}
+// NewDeleteIpamIPForbidden creates a DeleteIpamIPForbidden with default headers values
+func NewDeleteIpamIPForbidden() *DeleteIpamIPForbidden {
+ return &DeleteIpamIPForbidden{}
+}
+
+/*
+DeleteIpamIPForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type DeleteIpamIPForbidden struct {
+}
+
+// IsSuccess returns true when this delete ipam Ip forbidden response has a 2xx status code
+func (o *DeleteIpamIPForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this delete ipam Ip forbidden response has a 3xx status code
+func (o *DeleteIpamIPForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this delete ipam Ip forbidden response has a 4xx status code
+func (o *DeleteIpamIPForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this delete ipam Ip forbidden response has a 5xx status code
+func (o *DeleteIpamIPForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this delete ipam Ip forbidden response a status code equal to that given
+func (o *DeleteIpamIPForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *DeleteIpamIPForbidden) Error() string {
+ return fmt.Sprintf("[DELETE /ipam/{ip}][%d] deleteIpamIpForbidden ", 403)
+}
+
+func (o *DeleteIpamIPForbidden) String() string {
+ return fmt.Sprintf("[DELETE /ipam/{ip}][%d] deleteIpamIpForbidden ", 403)
+}
+
+func (o *DeleteIpamIPForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewDeleteIpamIPNotFound creates a DeleteIpamIPNotFound with default headers values
func NewDeleteIpamIPNotFound() *DeleteIpamIPNotFound {
return &DeleteIpamIPNotFound{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/ipam/post_ipam_ip_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/ipam/post_ipam_ip_responses.go
index 746965bb5b..1c8cff834f 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/ipam/post_ipam_ip_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/ipam/post_ipam_ip_responses.go
@@ -38,6 +38,12 @@ func (o *PostIpamIPReader) ReadResponse(response runtime.ClientResponse, consume
return nil, err
}
return nil, result
+ case 403:
+ result := NewPostIpamIPForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 409:
result := NewPostIpamIPExists()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -163,6 +169,57 @@ func (o *PostIpamIPInvalid) readResponse(response runtime.ClientResponse, consum
return nil
}
+// NewPostIpamIPForbidden creates a PostIpamIPForbidden with default headers values
+func NewPostIpamIPForbidden() *PostIpamIPForbidden {
+ return &PostIpamIPForbidden{}
+}
+
+/*
+PostIpamIPForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PostIpamIPForbidden struct {
+}
+
+// IsSuccess returns true when this post ipam Ip forbidden response has a 2xx status code
+func (o *PostIpamIPForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this post ipam Ip forbidden response has a 3xx status code
+func (o *PostIpamIPForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this post ipam Ip forbidden response has a 4xx status code
+func (o *PostIpamIPForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this post ipam Ip forbidden response has a 5xx status code
+func (o *PostIpamIPForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this post ipam Ip forbidden response a status code equal to that given
+func (o *PostIpamIPForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PostIpamIPForbidden) Error() string {
+ return fmt.Sprintf("[POST /ipam/{ip}][%d] postIpamIpForbidden ", 403)
+}
+
+func (o *PostIpamIPForbidden) String() string {
+ return fmt.Sprintf("[POST /ipam/{ip}][%d] postIpamIpForbidden ", 403)
+}
+
+func (o *PostIpamIPForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPostIpamIPExists creates a PostIpamIPExists with default headers values
func NewPostIpamIPExists() *PostIpamIPExists {
return &PostIpamIPExists{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/ipam/post_ipam_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/ipam/post_ipam_responses.go
index 17ff143c8a..2f13cc2945 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/ipam/post_ipam_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/ipam/post_ipam_responses.go
@@ -32,6 +32,12 @@ func (o *PostIpamReader) ReadResponse(response runtime.ClientResponse, consumer
return nil, err
}
return result, nil
+ case 403:
+ result := NewPostIpamForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 502:
result := NewPostIpamFailure()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -106,6 +112,57 @@ func (o *PostIpamCreated) readResponse(response runtime.ClientResponse, consumer
return nil
}
+// NewPostIpamForbidden creates a PostIpamForbidden with default headers values
+func NewPostIpamForbidden() *PostIpamForbidden {
+ return &PostIpamForbidden{}
+}
+
+/*
+PostIpamForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PostIpamForbidden struct {
+}
+
+// IsSuccess returns true when this post ipam forbidden response has a 2xx status code
+func (o *PostIpamForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this post ipam forbidden response has a 3xx status code
+func (o *PostIpamForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this post ipam forbidden response has a 4xx status code
+func (o *PostIpamForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this post ipam forbidden response has a 5xx status code
+func (o *PostIpamForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this post ipam forbidden response a status code equal to that given
+func (o *PostIpamForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PostIpamForbidden) Error() string {
+ return fmt.Sprintf("[POST /ipam][%d] postIpamForbidden ", 403)
+}
+
+func (o *PostIpamForbidden) String() string {
+ return fmt.Sprintf("[POST /ipam][%d] postIpamForbidden ", 403)
+}
+
+func (o *PostIpamForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPostIpamFailure creates a PostIpamFailure with default headers values
func NewPostIpamFailure() *PostIpamFailure {
return &PostIpamFailure{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/policy/delete_fqdn_cache_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/policy/delete_fqdn_cache_responses.go
index 1fe001c668..10def651e0 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/policy/delete_fqdn_cache_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/policy/delete_fqdn_cache_responses.go
@@ -38,6 +38,12 @@ func (o *DeleteFqdnCacheReader) ReadResponse(response runtime.ClientResponse, co
return nil, err
}
return nil, result
+ case 403:
+ result := NewDeleteFqdnCacheForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
default:
return nil, runtime.NewAPIError("response status code does not match any response statuses defined for this endpoint in the swagger spec", response, response.Code())
}
@@ -154,3 +160,54 @@ func (o *DeleteFqdnCacheBadRequest) readResponse(response runtime.ClientResponse
return nil
}
+
+// NewDeleteFqdnCacheForbidden creates a DeleteFqdnCacheForbidden with default headers values
+func NewDeleteFqdnCacheForbidden() *DeleteFqdnCacheForbidden {
+ return &DeleteFqdnCacheForbidden{}
+}
+
+/*
+DeleteFqdnCacheForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type DeleteFqdnCacheForbidden struct {
+}
+
+// IsSuccess returns true when this delete fqdn cache forbidden response has a 2xx status code
+func (o *DeleteFqdnCacheForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this delete fqdn cache forbidden response has a 3xx status code
+func (o *DeleteFqdnCacheForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this delete fqdn cache forbidden response has a 4xx status code
+func (o *DeleteFqdnCacheForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this delete fqdn cache forbidden response has a 5xx status code
+func (o *DeleteFqdnCacheForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this delete fqdn cache forbidden response a status code equal to that given
+func (o *DeleteFqdnCacheForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *DeleteFqdnCacheForbidden) Error() string {
+ return fmt.Sprintf("[DELETE /fqdn/cache][%d] deleteFqdnCacheForbidden ", 403)
+}
+
+func (o *DeleteFqdnCacheForbidden) String() string {
+ return fmt.Sprintf("[DELETE /fqdn/cache][%d] deleteFqdnCacheForbidden ", 403)
+}
+
+func (o *DeleteFqdnCacheForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/policy/delete_policy_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/policy/delete_policy_responses.go
index c36694d32c..538a831e3b 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/policy/delete_policy_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/policy/delete_policy_responses.go
@@ -38,6 +38,12 @@ func (o *DeletePolicyReader) ReadResponse(response runtime.ClientResponse, consu
return nil, err
}
return nil, result
+ case 403:
+ result := NewDeletePolicyForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 404:
result := NewDeletePolicyNotFound()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -179,6 +185,57 @@ func (o *DeletePolicyInvalid) readResponse(response runtime.ClientResponse, cons
return nil
}
+// NewDeletePolicyForbidden creates a DeletePolicyForbidden with default headers values
+func NewDeletePolicyForbidden() *DeletePolicyForbidden {
+ return &DeletePolicyForbidden{}
+}
+
+/*
+DeletePolicyForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type DeletePolicyForbidden struct {
+}
+
+// IsSuccess returns true when this delete policy forbidden response has a 2xx status code
+func (o *DeletePolicyForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this delete policy forbidden response has a 3xx status code
+func (o *DeletePolicyForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this delete policy forbidden response has a 4xx status code
+func (o *DeletePolicyForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this delete policy forbidden response has a 5xx status code
+func (o *DeletePolicyForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this delete policy forbidden response a status code equal to that given
+func (o *DeletePolicyForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *DeletePolicyForbidden) Error() string {
+ return fmt.Sprintf("[DELETE /policy][%d] deletePolicyForbidden ", 403)
+}
+
+func (o *DeletePolicyForbidden) String() string {
+ return fmt.Sprintf("[DELETE /policy][%d] deletePolicyForbidden ", 403)
+}
+
+func (o *DeletePolicyForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewDeletePolicyNotFound creates a DeletePolicyNotFound with default headers values
func NewDeletePolicyNotFound() *DeletePolicyNotFound {
return &DeletePolicyNotFound{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/policy/put_policy_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/policy/put_policy_responses.go
index e328a85426..f1104c418a 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/policy/put_policy_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/policy/put_policy_responses.go
@@ -38,6 +38,12 @@ func (o *PutPolicyReader) ReadResponse(response runtime.ClientResponse, consumer
return nil, err
}
return nil, result
+ case 403:
+ result := NewPutPolicyForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 460:
result := NewPutPolicyInvalidPath()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -179,6 +185,57 @@ func (o *PutPolicyInvalidPolicy) readResponse(response runtime.ClientResponse, c
return nil
}
+// NewPutPolicyForbidden creates a PutPolicyForbidden with default headers values
+func NewPutPolicyForbidden() *PutPolicyForbidden {
+ return &PutPolicyForbidden{}
+}
+
+/*
+PutPolicyForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PutPolicyForbidden struct {
+}
+
+// IsSuccess returns true when this put policy forbidden response has a 2xx status code
+func (o *PutPolicyForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this put policy forbidden response has a 3xx status code
+func (o *PutPolicyForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this put policy forbidden response has a 4xx status code
+func (o *PutPolicyForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this put policy forbidden response has a 5xx status code
+func (o *PutPolicyForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this put policy forbidden response a status code equal to that given
+func (o *PutPolicyForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PutPolicyForbidden) Error() string {
+ return fmt.Sprintf("[PUT /policy][%d] putPolicyForbidden ", 403)
+}
+
+func (o *PutPolicyForbidden) String() string {
+ return fmt.Sprintf("[PUT /policy][%d] putPolicyForbidden ", 403)
+}
+
+func (o *PutPolicyForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPutPolicyInvalidPath creates a PutPolicyInvalidPath with default headers values
func NewPutPolicyInvalidPath() *PutPolicyInvalidPath {
return &PutPolicyInvalidPath{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/prefilter/delete_prefilter_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/prefilter/delete_prefilter_responses.go
index 002694d506..0d5aea637d 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/prefilter/delete_prefilter_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/prefilter/delete_prefilter_responses.go
@@ -32,6 +32,12 @@ func (o *DeletePrefilterReader) ReadResponse(response runtime.ClientResponse, co
return nil, err
}
return result, nil
+ case 403:
+ result := NewDeletePrefilterForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 461:
result := NewDeletePrefilterInvalidCIDR()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -112,6 +118,57 @@ func (o *DeletePrefilterOK) readResponse(response runtime.ClientResponse, consum
return nil
}
+// NewDeletePrefilterForbidden creates a DeletePrefilterForbidden with default headers values
+func NewDeletePrefilterForbidden() *DeletePrefilterForbidden {
+ return &DeletePrefilterForbidden{}
+}
+
+/*
+DeletePrefilterForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type DeletePrefilterForbidden struct {
+}
+
+// IsSuccess returns true when this delete prefilter forbidden response has a 2xx status code
+func (o *DeletePrefilterForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this delete prefilter forbidden response has a 3xx status code
+func (o *DeletePrefilterForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this delete prefilter forbidden response has a 4xx status code
+func (o *DeletePrefilterForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this delete prefilter forbidden response has a 5xx status code
+func (o *DeletePrefilterForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this delete prefilter forbidden response a status code equal to that given
+func (o *DeletePrefilterForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *DeletePrefilterForbidden) Error() string {
+ return fmt.Sprintf("[DELETE /prefilter][%d] deletePrefilterForbidden ", 403)
+}
+
+func (o *DeletePrefilterForbidden) String() string {
+ return fmt.Sprintf("[DELETE /prefilter][%d] deletePrefilterForbidden ", 403)
+}
+
+func (o *DeletePrefilterForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewDeletePrefilterInvalidCIDR creates a DeletePrefilterInvalidCIDR with default headers values
func NewDeletePrefilterInvalidCIDR() *DeletePrefilterInvalidCIDR {
return &DeletePrefilterInvalidCIDR{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/prefilter/patch_prefilter_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/prefilter/patch_prefilter_responses.go
index 4767e9cc1a..56db490a65 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/prefilter/patch_prefilter_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/prefilter/patch_prefilter_responses.go
@@ -32,6 +32,12 @@ func (o *PatchPrefilterReader) ReadResponse(response runtime.ClientResponse, con
return nil, err
}
return result, nil
+ case 403:
+ result := NewPatchPrefilterForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 461:
result := NewPatchPrefilterInvalidCIDR()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -112,6 +118,57 @@ func (o *PatchPrefilterOK) readResponse(response runtime.ClientResponse, consume
return nil
}
+// NewPatchPrefilterForbidden creates a PatchPrefilterForbidden with default headers values
+func NewPatchPrefilterForbidden() *PatchPrefilterForbidden {
+ return &PatchPrefilterForbidden{}
+}
+
+/*
+PatchPrefilterForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PatchPrefilterForbidden struct {
+}
+
+// IsSuccess returns true when this patch prefilter forbidden response has a 2xx status code
+func (o *PatchPrefilterForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this patch prefilter forbidden response has a 3xx status code
+func (o *PatchPrefilterForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this patch prefilter forbidden response has a 4xx status code
+func (o *PatchPrefilterForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this patch prefilter forbidden response has a 5xx status code
+func (o *PatchPrefilterForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this patch prefilter forbidden response a status code equal to that given
+func (o *PatchPrefilterForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PatchPrefilterForbidden) Error() string {
+ return fmt.Sprintf("[PATCH /prefilter][%d] patchPrefilterForbidden ", 403)
+}
+
+func (o *PatchPrefilterForbidden) String() string {
+ return fmt.Sprintf("[PATCH /prefilter][%d] patchPrefilterForbidden ", 403)
+}
+
+func (o *PatchPrefilterForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPatchPrefilterInvalidCIDR creates a PatchPrefilterInvalidCIDR with default headers values
func NewPatchPrefilterInvalidCIDR() *PatchPrefilterInvalidCIDR {
return &PatchPrefilterInvalidCIDR{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/recorder/delete_recorder_id_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/recorder/delete_recorder_id_responses.go
index b74c2ee2fc..cf7ab77a23 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/recorder/delete_recorder_id_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/recorder/delete_recorder_id_responses.go
@@ -32,6 +32,12 @@ func (o *DeleteRecorderIDReader) ReadResponse(response runtime.ClientResponse, c
return nil, err
}
return result, nil
+ case 403:
+ result := NewDeleteRecorderIDForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 404:
result := NewDeleteRecorderIDNotFound()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -100,6 +106,57 @@ func (o *DeleteRecorderIDOK) readResponse(response runtime.ClientResponse, consu
return nil
}
+// NewDeleteRecorderIDForbidden creates a DeleteRecorderIDForbidden with default headers values
+func NewDeleteRecorderIDForbidden() *DeleteRecorderIDForbidden {
+ return &DeleteRecorderIDForbidden{}
+}
+
+/*
+DeleteRecorderIDForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type DeleteRecorderIDForbidden struct {
+}
+
+// IsSuccess returns true when this delete recorder Id forbidden response has a 2xx status code
+func (o *DeleteRecorderIDForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this delete recorder Id forbidden response has a 3xx status code
+func (o *DeleteRecorderIDForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this delete recorder Id forbidden response has a 4xx status code
+func (o *DeleteRecorderIDForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this delete recorder Id forbidden response has a 5xx status code
+func (o *DeleteRecorderIDForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this delete recorder Id forbidden response a status code equal to that given
+func (o *DeleteRecorderIDForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *DeleteRecorderIDForbidden) Error() string {
+ return fmt.Sprintf("[DELETE /recorder/{id}][%d] deleteRecorderIdForbidden ", 403)
+}
+
+func (o *DeleteRecorderIDForbidden) String() string {
+ return fmt.Sprintf("[DELETE /recorder/{id}][%d] deleteRecorderIdForbidden ", 403)
+}
+
+func (o *DeleteRecorderIDForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewDeleteRecorderIDNotFound creates a DeleteRecorderIDNotFound with default headers values
func NewDeleteRecorderIDNotFound() *DeleteRecorderIDNotFound {
return &DeleteRecorderIDNotFound{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/recorder/put_recorder_id_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/recorder/put_recorder_id_responses.go
index 5e1c4272e1..996c87026d 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/recorder/put_recorder_id_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/recorder/put_recorder_id_responses.go
@@ -38,6 +38,12 @@ func (o *PutRecorderIDReader) ReadResponse(response runtime.ClientResponse, cons
return nil, err
}
return result, nil
+ case 403:
+ result := NewPutRecorderIDForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 500:
result := NewPutRecorderIDFailure()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -151,6 +157,57 @@ func (o *PutRecorderIDCreated) readResponse(response runtime.ClientResponse, con
return nil
}
+// NewPutRecorderIDForbidden creates a PutRecorderIDForbidden with default headers values
+func NewPutRecorderIDForbidden() *PutRecorderIDForbidden {
+ return &PutRecorderIDForbidden{}
+}
+
+/*
+PutRecorderIDForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PutRecorderIDForbidden struct {
+}
+
+// IsSuccess returns true when this put recorder Id forbidden response has a 2xx status code
+func (o *PutRecorderIDForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this put recorder Id forbidden response has a 3xx status code
+func (o *PutRecorderIDForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this put recorder Id forbidden response has a 4xx status code
+func (o *PutRecorderIDForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this put recorder Id forbidden response has a 5xx status code
+func (o *PutRecorderIDForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this put recorder Id forbidden response a status code equal to that given
+func (o *PutRecorderIDForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PutRecorderIDForbidden) Error() string {
+ return fmt.Sprintf("[PUT /recorder/{id}][%d] putRecorderIdForbidden ", 403)
+}
+
+func (o *PutRecorderIDForbidden) String() string {
+ return fmt.Sprintf("[PUT /recorder/{id}][%d] putRecorderIdForbidden ", 403)
+}
+
+func (o *PutRecorderIDForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPutRecorderIDFailure creates a PutRecorderIDFailure with default headers values
func NewPutRecorderIDFailure() *PutRecorderIDFailure {
return &PutRecorderIDFailure{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/service/delete_service_id_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/service/delete_service_id_responses.go
index 272cdcbc2a..21926d9c47 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/service/delete_service_id_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/service/delete_service_id_responses.go
@@ -32,6 +32,12 @@ func (o *DeleteServiceIDReader) ReadResponse(response runtime.ClientResponse, co
return nil, err
}
return result, nil
+ case 403:
+ result := NewDeleteServiceIDForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 404:
result := NewDeleteServiceIDNotFound()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -100,6 +106,57 @@ func (o *DeleteServiceIDOK) readResponse(response runtime.ClientResponse, consum
return nil
}
+// NewDeleteServiceIDForbidden creates a DeleteServiceIDForbidden with default headers values
+func NewDeleteServiceIDForbidden() *DeleteServiceIDForbidden {
+ return &DeleteServiceIDForbidden{}
+}
+
+/*
+DeleteServiceIDForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type DeleteServiceIDForbidden struct {
+}
+
+// IsSuccess returns true when this delete service Id forbidden response has a 2xx status code
+func (o *DeleteServiceIDForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this delete service Id forbidden response has a 3xx status code
+func (o *DeleteServiceIDForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this delete service Id forbidden response has a 4xx status code
+func (o *DeleteServiceIDForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this delete service Id forbidden response has a 5xx status code
+func (o *DeleteServiceIDForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this delete service Id forbidden response a status code equal to that given
+func (o *DeleteServiceIDForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *DeleteServiceIDForbidden) Error() string {
+ return fmt.Sprintf("[DELETE /service/{id}][%d] deleteServiceIdForbidden ", 403)
+}
+
+func (o *DeleteServiceIDForbidden) String() string {
+ return fmt.Sprintf("[DELETE /service/{id}][%d] deleteServiceIdForbidden ", 403)
+}
+
+func (o *DeleteServiceIDForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewDeleteServiceIDNotFound creates a DeleteServiceIDNotFound with default headers values
func NewDeleteServiceIDNotFound() *DeleteServiceIDNotFound {
return &DeleteServiceIDNotFound{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/client/service/put_service_id_responses.go b/vendor/github.com/cilium/cilium/api/v1/client/service/put_service_id_responses.go
index 39859cd6eb..af85fa32a6 100644
--- a/vendor/github.com/cilium/cilium/api/v1/client/service/put_service_id_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/client/service/put_service_id_responses.go
@@ -38,6 +38,12 @@ func (o *PutServiceIDReader) ReadResponse(response runtime.ClientResponse, consu
return nil, err
}
return result, nil
+ case 403:
+ result := NewPutServiceIDForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 460:
result := NewPutServiceIDInvalidFrontend()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -169,6 +175,57 @@ func (o *PutServiceIDCreated) readResponse(response runtime.ClientResponse, cons
return nil
}
+// NewPutServiceIDForbidden creates a PutServiceIDForbidden with default headers values
+func NewPutServiceIDForbidden() *PutServiceIDForbidden {
+ return &PutServiceIDForbidden{}
+}
+
+/*
+PutServiceIDForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PutServiceIDForbidden struct {
+}
+
+// IsSuccess returns true when this put service Id forbidden response has a 2xx status code
+func (o *PutServiceIDForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this put service Id forbidden response has a 3xx status code
+func (o *PutServiceIDForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this put service Id forbidden response has a 4xx status code
+func (o *PutServiceIDForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this put service Id forbidden response has a 5xx status code
+func (o *PutServiceIDForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this put service Id forbidden response a status code equal to that given
+func (o *PutServiceIDForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PutServiceIDForbidden) Error() string {
+ return fmt.Sprintf("[PUT /service/{id}][%d] putServiceIdForbidden ", 403)
+}
+
+func (o *PutServiceIDForbidden) String() string {
+ return fmt.Sprintf("[PUT /service/{id}][%d] putServiceIdForbidden ", 403)
+}
+
+func (o *PutServiceIDForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPutServiceIDInvalidFrontend creates a PutServiceIDInvalidFrontend with default headers values
func NewPutServiceIDInvalidFrontend() *PutServiceIDInvalidFrontend {
return &PutServiceIDInvalidFrontend{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/flow/README.md b/vendor/github.com/cilium/cilium/api/v1/flow/README.md
index 194f02e581..2ffa012ab8 100644
--- a/vendor/github.com/cilium/cilium/api/v1/flow/README.md
+++ b/vendor/github.com/cilium/cilium/api/v1/flow/README.md
@@ -42,6 +42,7 @@
- [Workload](#flow-Workload)
- [AgentEventType](#flow-AgentEventType)
+ - [AuthType](#flow-AuthType)
- [DebugCapturePoint](#flow-DebugCapturePoint)
- [DebugEventType](#flow-DebugEventType)
- [DropReason](#flow-DropReason)
@@ -267,6 +268,7 @@ EventTypeFilter is a filter describing a particular event type
| uuid | [string](#string) | | uuid is a universally unique identifier for this flow. |
| verdict | [Verdict](#flow-Verdict) | | |
| drop_reason | [uint32](#uint32) | | **Deprecated.** only applicable to Verdict = DROPPED. deprecated in favor of drop_reason_desc. |
+| auth_type | [AuthType](#flow-AuthType) | | auth_type is the authentication type specified for the flow in Cilium Network Policy. Only set on policy verdict events. |
| ethernet | [Ethernet](#flow-Ethernet) | | l2 |
| IP | [IP](#flow-IP) | | l3 |
| l4 | [Layer4](#flow-Layer4) | | l4 |
@@ -794,6 +796,20 @@ AgentNotification in pkg/monitor/api/types.go
+
+
+### AuthType
+These types correspond to definitions in pkg/policy/l4.go
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NONE | 0 | |
+| NULL | 1 | |
+| MTLS_SPIFFE | 2 | |
+| ALWAYS_FAIL | 3 | |
+
+
+
### DebugCapturePoint
diff --git a/vendor/github.com/cilium/cilium/api/v1/flow/flow.pb.go b/vendor/github.com/cilium/cilium/api/v1/flow/flow.pb.go
index 1218ab671f..ed902fa4b3 100644
--- a/vendor/github.com/cilium/cilium/api/v1/flow/flow.pb.go
+++ b/vendor/github.com/cilium/cilium/api/v1/flow/flow.pb.go
@@ -77,6 +77,59 @@ func (FlowType) EnumDescriptor() ([]byte, []int) {
return file_flow_flow_proto_rawDescGZIP(), []int{0}
}
+// These types correspond to definitions in pkg/policy/l4.go
+type AuthType int32
+
+const (
+ AuthType_NONE AuthType = 0
+ AuthType_NULL AuthType = 1
+ AuthType_MTLS_SPIFFE AuthType = 2
+ AuthType_ALWAYS_FAIL AuthType = 3
+)
+
+// Enum value maps for AuthType.
+var (
+ AuthType_name = map[int32]string{
+ 0: "NONE",
+ 1: "NULL",
+ 2: "MTLS_SPIFFE",
+ 3: "ALWAYS_FAIL",
+ }
+ AuthType_value = map[string]int32{
+ "NONE": 0,
+ "NULL": 1,
+ "MTLS_SPIFFE": 2,
+ "ALWAYS_FAIL": 3,
+ }
+)
+
+func (x AuthType) Enum() *AuthType {
+ p := new(AuthType)
+ *p = x
+ return p
+}
+
+func (x AuthType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (AuthType) Descriptor() protoreflect.EnumDescriptor {
+ return file_flow_flow_proto_enumTypes[1].Descriptor()
+}
+
+func (AuthType) Type() protoreflect.EnumType {
+ return &file_flow_flow_proto_enumTypes[1]
+}
+
+func (x AuthType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use AuthType.Descriptor instead.
+func (AuthType) EnumDescriptor() ([]byte, []int) {
+ return file_flow_flow_proto_rawDescGZIP(), []int{1}
+}
+
type TraceObservationPoint int32
const (
@@ -165,11 +218,11 @@ func (x TraceObservationPoint) String() string {
}
func (TraceObservationPoint) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[1].Descriptor()
+ return file_flow_flow_proto_enumTypes[2].Descriptor()
}
func (TraceObservationPoint) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[1]
+ return &file_flow_flow_proto_enumTypes[2]
}
func (x TraceObservationPoint) Number() protoreflect.EnumNumber {
@@ -178,7 +231,7 @@ func (x TraceObservationPoint) Number() protoreflect.EnumNumber {
// Deprecated: Use TraceObservationPoint.Descriptor instead.
func (TraceObservationPoint) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{1}
+ return file_flow_flow_proto_rawDescGZIP(), []int{2}
}
// This enum corresponds to Cilium's L7 accesslog FlowType:
@@ -220,11 +273,11 @@ func (x L7FlowType) String() string {
}
func (L7FlowType) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[2].Descriptor()
+ return file_flow_flow_proto_enumTypes[3].Descriptor()
}
func (L7FlowType) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[2]
+ return &file_flow_flow_proto_enumTypes[3]
}
func (x L7FlowType) Number() protoreflect.EnumNumber {
@@ -233,7 +286,7 @@ func (x L7FlowType) Number() protoreflect.EnumNumber {
// Deprecated: Use L7FlowType.Descriptor instead.
func (L7FlowType) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{2}
+ return file_flow_flow_proto_rawDescGZIP(), []int{3}
}
type IPVersion int32
@@ -269,11 +322,11 @@ func (x IPVersion) String() string {
}
func (IPVersion) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[3].Descriptor()
+ return file_flow_flow_proto_enumTypes[4].Descriptor()
}
func (IPVersion) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[3]
+ return &file_flow_flow_proto_enumTypes[4]
}
func (x IPVersion) Number() protoreflect.EnumNumber {
@@ -282,7 +335,7 @@ func (x IPVersion) Number() protoreflect.EnumNumber {
// Deprecated: Use IPVersion.Descriptor instead.
func (IPVersion) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{3}
+ return file_flow_flow_proto_rawDescGZIP(), []int{4}
}
type Verdict int32
@@ -347,11 +400,11 @@ func (x Verdict) String() string {
}
func (Verdict) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[4].Descriptor()
+ return file_flow_flow_proto_enumTypes[5].Descriptor()
}
func (Verdict) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[4]
+ return &file_flow_flow_proto_enumTypes[5]
}
func (x Verdict) Number() protoreflect.EnumNumber {
@@ -360,7 +413,7 @@ func (x Verdict) Number() protoreflect.EnumNumber {
// Deprecated: Use Verdict.Descriptor instead.
func (Verdict) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{4}
+ return file_flow_flow_proto_rawDescGZIP(), []int{5}
}
// These values are shared with pkg/monitor/api/drop.go and bpf/lib/common.h.
@@ -587,11 +640,11 @@ func (x DropReason) String() string {
}
func (DropReason) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[5].Descriptor()
+ return file_flow_flow_proto_enumTypes[6].Descriptor()
}
func (DropReason) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[5]
+ return &file_flow_flow_proto_enumTypes[6]
}
func (x DropReason) Number() protoreflect.EnumNumber {
@@ -600,7 +653,7 @@ func (x DropReason) Number() protoreflect.EnumNumber {
// Deprecated: Use DropReason.Descriptor instead.
func (DropReason) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{5}
+ return file_flow_flow_proto_rawDescGZIP(), []int{6}
}
type TrafficDirection int32
@@ -636,11 +689,11 @@ func (x TrafficDirection) String() string {
}
func (TrafficDirection) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[6].Descriptor()
+ return file_flow_flow_proto_enumTypes[7].Descriptor()
}
func (TrafficDirection) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[6]
+ return &file_flow_flow_proto_enumTypes[7]
}
func (x TrafficDirection) Number() protoreflect.EnumNumber {
@@ -649,7 +702,7 @@ func (x TrafficDirection) Number() protoreflect.EnumNumber {
// Deprecated: Use TrafficDirection.Descriptor instead.
func (TrafficDirection) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{6}
+ return file_flow_flow_proto_rawDescGZIP(), []int{7}
}
// These values are shared with pkg/monitor/api/datapath_debug.go and bpf/lib/dbg.h.
@@ -704,11 +757,11 @@ func (x DebugCapturePoint) String() string {
}
func (DebugCapturePoint) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[7].Descriptor()
+ return file_flow_flow_proto_enumTypes[8].Descriptor()
}
func (DebugCapturePoint) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[7]
+ return &file_flow_flow_proto_enumTypes[8]
}
func (x DebugCapturePoint) Number() protoreflect.EnumNumber {
@@ -717,7 +770,7 @@ func (x DebugCapturePoint) Number() protoreflect.EnumNumber {
// Deprecated: Use DebugCapturePoint.Descriptor instead.
func (DebugCapturePoint) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{7}
+ return file_flow_flow_proto_rawDescGZIP(), []int{8}
}
// EventType are constants are based on the ones from .
@@ -756,11 +809,11 @@ func (x EventType) String() string {
}
func (EventType) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[8].Descriptor()
+ return file_flow_flow_proto_enumTypes[9].Descriptor()
}
func (EventType) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[8]
+ return &file_flow_flow_proto_enumTypes[9]
}
func (x EventType) Number() protoreflect.EnumNumber {
@@ -769,7 +822,7 @@ func (x EventType) Number() protoreflect.EnumNumber {
// Deprecated: Use EventType.Descriptor instead.
func (EventType) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{8}
+ return file_flow_flow_proto_rawDescGZIP(), []int{9}
}
type LostEventSource int32
@@ -816,11 +869,11 @@ func (x LostEventSource) String() string {
}
func (LostEventSource) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[9].Descriptor()
+ return file_flow_flow_proto_enumTypes[10].Descriptor()
}
func (LostEventSource) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[9]
+ return &file_flow_flow_proto_enumTypes[10]
}
func (x LostEventSource) Number() protoreflect.EnumNumber {
@@ -829,7 +882,7 @@ func (x LostEventSource) Number() protoreflect.EnumNumber {
// Deprecated: Use LostEventSource.Descriptor instead.
func (LostEventSource) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{9}
+ return file_flow_flow_proto_rawDescGZIP(), []int{10}
}
// AgentEventType is the type of agent event. These values are shared with type
@@ -894,11 +947,11 @@ func (x AgentEventType) String() string {
}
func (AgentEventType) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[10].Descriptor()
+ return file_flow_flow_proto_enumTypes[11].Descriptor()
}
func (AgentEventType) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[10]
+ return &file_flow_flow_proto_enumTypes[11]
}
func (x AgentEventType) Number() protoreflect.EnumNumber {
@@ -907,7 +960,7 @@ func (x AgentEventType) Number() protoreflect.EnumNumber {
// Deprecated: Use AgentEventType.Descriptor instead.
func (AgentEventType) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{10}
+ return file_flow_flow_proto_rawDescGZIP(), []int{11}
}
// This mirrors enum xlate_point in bpf/lib/trace_sock.h
@@ -950,11 +1003,11 @@ func (x SocketTranslationPoint) String() string {
}
func (SocketTranslationPoint) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[11].Descriptor()
+ return file_flow_flow_proto_enumTypes[12].Descriptor()
}
func (SocketTranslationPoint) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[11]
+ return &file_flow_flow_proto_enumTypes[12]
}
func (x SocketTranslationPoint) Number() protoreflect.EnumNumber {
@@ -963,7 +1016,7 @@ func (x SocketTranslationPoint) Number() protoreflect.EnumNumber {
// Deprecated: Use SocketTranslationPoint.Descriptor instead.
func (SocketTranslationPoint) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{11}
+ return file_flow_flow_proto_rawDescGZIP(), []int{12}
}
// These values are shared with pkg/monitor/api/datapath_debug.go and bpf/lib/dbg.h.
@@ -1186,11 +1239,11 @@ func (x DebugEventType) String() string {
}
func (DebugEventType) Descriptor() protoreflect.EnumDescriptor {
- return file_flow_flow_proto_enumTypes[12].Descriptor()
+ return file_flow_flow_proto_enumTypes[13].Descriptor()
}
func (DebugEventType) Type() protoreflect.EnumType {
- return &file_flow_flow_proto_enumTypes[12]
+ return &file_flow_flow_proto_enumTypes[13]
}
func (x DebugEventType) Number() protoreflect.EnumNumber {
@@ -1199,7 +1252,7 @@ func (x DebugEventType) Number() protoreflect.EnumNumber {
// Deprecated: Use DebugEventType.Descriptor instead.
func (DebugEventType) EnumDescriptor() ([]byte, []int) {
- return file_flow_flow_proto_rawDescGZIP(), []int{12}
+ return file_flow_flow_proto_rawDescGZIP(), []int{13}
}
type Flow struct {
@@ -1216,6 +1269,9 @@ type Flow struct {
//
// Deprecated: Marked as deprecated in flow/flow.proto.
DropReason uint32 `protobuf:"varint,3,opt,name=drop_reason,json=dropReason,proto3" json:"drop_reason,omitempty"`
+ // auth_type is the authentication type specified for the flow in Cilium Network Policy.
+ // Only set on policy verdict events.
+ AuthType AuthType `protobuf:"varint,35,opt,name=auth_type,json=authType,proto3,enum=flow.AuthType" json:"auth_type,omitempty"`
// l2
Ethernet *Ethernet `protobuf:"bytes,4,opt,name=ethernet,proto3" json:"ethernet,omitempty"`
// l3
@@ -1345,6 +1401,13 @@ func (x *Flow) GetDropReason() uint32 {
return 0
}
+func (x *Flow) GetAuthType() AuthType {
+ if x != nil {
+ return x.AuthType
+ }
+ return AuthType_NONE
+}
+
func (x *Flow) GetEthernet() *Ethernet {
if x != nil {
return x.Ethernet
@@ -4432,7 +4495,7 @@ var file_flow_flow_proto_rawDesc = []byte{
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
- 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x0b, 0x0a, 0x04, 0x46, 0x6c, 0x6f,
+ 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xca, 0x0b, 0x0a, 0x04, 0x46, 0x6c, 0x6f,
0x77, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d,
@@ -4442,792 +4505,799 @@ var file_flow_flow_proto_rawDesc = []byte{
0x72, 0x64, 0x69, 0x63, 0x74, 0x52, 0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x12, 0x23,
0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61,
- 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x74, 0x68,
- 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12,
- 0x18, 0x0a, 0x02, 0x49, 0x50, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x66, 0x6c,
- 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x52, 0x02, 0x49, 0x50, 0x12, 0x1c, 0x0a, 0x02, 0x6c, 0x34, 0x18,
- 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x61, 0x79,
- 0x65, 0x72, 0x34, 0x52, 0x02, 0x6c, 0x34, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45,
- 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
- 0x30, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09,
+ 0x73, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x23, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x75,
+ 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65,
+ 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e,
+ 0x65, 0x74, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x02,
+ 0x49, 0x50, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
+ 0x49, 0x50, 0x52, 0x02, 0x49, 0x50, 0x12, 0x1c, 0x0a, 0x02, 0x6c, 0x34, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x34,
+ 0x52, 0x02, 0x6c, 0x34, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6e, 0x64, 0x70,
- 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32,
- 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52,
- 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61,
- 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61,
- 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
- 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09,
- 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d,
- 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x02, 0x6c, 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
- 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x37, 0x52, 0x02, 0x6c, 0x37,
- 0x12, 0x18, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42,
- 0x02, 0x18, 0x01, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
- 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e,
- 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
- 0x12, 0x34, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69,
- 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
- 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69,
- 0x63, 0x65, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69,
- 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28,
- 0x0e, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
- 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x72, 0x61, 0x66, 0x66,
- 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x70,
- 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x61,
- 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x17, 0x74, 0x72, 0x61, 0x63, 0x65,
- 0x5f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69,
- 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
- 0x54, 0x72, 0x61, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x15, 0x74, 0x72, 0x61, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65,
- 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x10,
- 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x63,
- 0x18, 0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x72,
- 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0e, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65,
- 0x61, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x72,
- 0x65, 0x70, 0x6c, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f,
- 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
- 0x47, 0x0a, 0x13, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65,
- 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x66,
- 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65,
- 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x11, 0x64, 0x65, 0x62, 0x75, 0x67, 0x43, 0x61, 0x70, 0x74,
- 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65,
- 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c,
- 0x6f, 0x77, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
- 0x61, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1d,
- 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1d, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x37, 0x0a,
- 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x1e,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x63,
- 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x43,
- 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x46, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x5f, 0x78,
- 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x72,
- 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0e,
- 0x73, 0x6f, 0x63, 0x6b, 0x58, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23,
- 0x0a, 0x0d, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18,
- 0x20, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6f,
- 0x6b, 0x69, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64,
- 0x18, 0x21, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64,
- 0x12, 0x1e, 0x0a, 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0xa0, 0x8d, 0x06, 0x20,
- 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
- 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x11,
- 0x10, 0x12, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13, 0x22, 0xc4, 0x01, 0x0a, 0x06, 0x4c, 0x61, 0x79,
- 0x65, 0x72, 0x34, 0x12, 0x1d, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x09, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x43, 0x50, 0x48, 0x00, 0x52, 0x03, 0x54,
- 0x43, 0x50, 0x12, 0x1d, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x09, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x55, 0x44, 0x50, 0x48, 0x00, 0x52, 0x03, 0x55, 0x44,
- 0x50, 0x12, 0x26, 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x48,
- 0x00, 0x52, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x12, 0x26, 0x0a, 0x06, 0x49, 0x43, 0x4d,
- 0x50, 0x76, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77,
- 0x2e, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x36, 0x48, 0x00, 0x52, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76,
- 0x36, 0x12, 0x20, 0x0a, 0x04, 0x53, 0x43, 0x54, 0x50, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x0a, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x43, 0x54, 0x50, 0x48, 0x00, 0x52, 0x04, 0x53,
- 0x43, 0x54, 0x50, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22,
- 0xbd, 0x01, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x37, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79,
- 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
- 0x4c, 0x37, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
- 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6e, 0x73, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4e, 0x73, 0x12,
- 0x1d, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x66,
- 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x4e, 0x53, 0x48, 0x00, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x20,
- 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66,
- 0x6c, 0x6f, 0x77, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x48, 0x00, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70,
- 0x12, 0x23, 0x0a, 0x05, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x0b, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4b, 0x61, 0x66, 0x6b, 0x61, 0x48, 0x00, 0x52, 0x05,
- 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22,
- 0x39, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12,
- 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x11, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x65,
- 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x28, 0x0a, 0x0b, 0x54, 0x72,
- 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61,
- 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61,
- 0x63, 0x65, 0x49, 0x64, 0x22, 0xb5, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
- 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x49,
- 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a,
- 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c,
- 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62,
- 0x65, 0x6c, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c,
- 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61,
- 0x64, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x08,
- 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04,
- 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64,
- 0x22, 0x77, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74,
- 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
- 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x43, 0x50, 0x46, 0x6c, 0x61,
- 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x02, 0x49, 0x50,
+ 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x0b,
+ 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
+ 0x74, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22,
+ 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x66,
+ 0x6c, 0x6f, 0x77, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79,
+ 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18,
+ 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x64,
+ 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12,
+ 0x1c, 0x0a, 0x02, 0x6c, 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c,
+ 0x6f, 0x77, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x37, 0x52, 0x02, 0x6c, 0x37, 0x12, 0x18, 0x0a,
+ 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01,
+ 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x6c,
+ 0x6f, 0x77, 0x2e, 0x43, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a,
+ 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18,
+ 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52,
+ 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x64,
+ 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16,
+ 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x44, 0x69, 0x72,
+ 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x44,
+ 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6f, 0x6c, 0x69,
+ 0x63, 0x79, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x17, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68,
+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x17, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6f, 0x62,
+ 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18,
+ 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61,
+ 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69,
+ 0x6e, 0x74, 0x52, 0x15, 0x74, 0x72, 0x61, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x10, 0x64, 0x72, 0x6f,
+ 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x18, 0x19, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52,
+ 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0e, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f,
+ 0x6e, 0x44, 0x65, 0x73, 0x63, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c,
+ 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x47, 0x0a, 0x13,
+ 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x70, 0x6f,
+ 0x69, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x6f, 0x77,
+ 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69,
+ 0x6e, 0x74, 0x52, 0x11, 0x64, 0x65, 0x62, 0x75, 0x67, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65,
+ 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+ 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
+ 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+ 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
+ 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x74, 0x72,
+ 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f,
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74,
+ 0x65, 0x78, 0x74, 0x12, 0x46, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x5f, 0x78, 0x6c, 0x61, 0x74,
+ 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e,
+ 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73,
+ 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x6f, 0x63,
+ 0x6b, 0x58, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73,
+ 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x20, 0x20, 0x01,
+ 0x28, 0x04, 0x52, 0x0c, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65,
+ 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x21, 0x20,
+ 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a,
+ 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0xa0, 0x8d, 0x06, 0x20, 0x01, 0x28, 0x09,
+ 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x4a, 0x04, 0x08,
+ 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x11, 0x10, 0x12, 0x4a,
+ 0x04, 0x08, 0x12, 0x10, 0x13, 0x22, 0xc4, 0x01, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x34,
+ 0x12, 0x1d, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e,
+ 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x43, 0x50, 0x48, 0x00, 0x52, 0x03, 0x54, 0x43, 0x50, 0x12,
+ 0x1d, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x66,
+ 0x6c, 0x6f, 0x77, 0x2e, 0x55, 0x44, 0x50, 0x48, 0x00, 0x52, 0x03, 0x55, 0x44, 0x50, 0x12, 0x26,
+ 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
+ 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x48, 0x00, 0x52, 0x06,
+ 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x12, 0x26, 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x36,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x43,
+ 0x4d, 0x50, 0x76, 0x36, 0x48, 0x00, 0x52, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x36, 0x12, 0x20,
+ 0x0a, 0x04, 0x53, 0x43, 0x54, 0x50, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66,
+ 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x43, 0x54, 0x50, 0x48, 0x00, 0x52, 0x04, 0x53, 0x43, 0x54, 0x50,
+ 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xbd, 0x01, 0x0a,
+ 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x37, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x37, 0x46,
+ 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x04, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4e, 0x73, 0x12, 0x1d, 0x0a, 0x03,
+ 0x64, 0x6e, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x66, 0x6c, 0x6f, 0x77,
+ 0x2e, 0x44, 0x4e, 0x53, 0x48, 0x00, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x68,
+ 0x74, 0x74, 0x70, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x6f, 0x77,
+ 0x2e, 0x48, 0x54, 0x54, 0x50, 0x48, 0x00, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x23, 0x0a,
+ 0x05, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x66,
+ 0x6c, 0x6f, 0x77, 0x2e, 0x4b, 0x61, 0x66, 0x6b, 0x61, 0x48, 0x00, 0x52, 0x05, 0x6b, 0x61, 0x66,
+ 0x6b, 0x61, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x39, 0x0a, 0x0c,
+ 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x29, 0x0a, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66,
+ 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x28, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, 0x65,
+ 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49,
+ 0x64, 0x22, 0xb5, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e,
+ 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a,
+ 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61,
+ 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e,
+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73,
+ 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x09, 0x77,
+ 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e,
+ 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x09,
+ 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x08, 0x57, 0x6f, 0x72,
+ 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e,
+ 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x77, 0x0a,
+ 0x03, 0x54, 0x43, 0x50, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70,
+ 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74,
+ 0x12, 0x24, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x43, 0x50, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52,
+ 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x02, 0x49, 0x50, 0x12, 0x16, 0x0a,
+ 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74,
+ 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x09, 0x69, 0x70, 0x56, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x6f,
+ 0x77, 0x2e, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x69, 0x70, 0x56,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70,
+ 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79,
+ 0x70, 0x74, 0x65, 0x64, 0x22, 0x44, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74,
0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74,
0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
- 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x09, 0x69, 0x70,
- 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e,
- 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09,
- 0x69, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x63,
- 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e,
- 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x22, 0x44, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72,
- 0x6e, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64,
- 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x01,
- 0x0a, 0x08, 0x54, 0x43, 0x50, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x49,
- 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x46, 0x49, 0x4e, 0x12, 0x10, 0x0a, 0x03,
- 0x53, 0x59, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x53, 0x59, 0x4e, 0x12, 0x10,
- 0x0a, 0x03, 0x52, 0x53, 0x54, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x52, 0x53, 0x54,
- 0x12, 0x10, 0x0a, 0x03, 0x50, 0x53, 0x48, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x50,
- 0x53, 0x48, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x43, 0x4b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x03, 0x41, 0x43, 0x4b, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x52, 0x47, 0x18, 0x06, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x03, 0x55, 0x52, 0x47, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x43, 0x45, 0x18, 0x07, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x03, 0x45, 0x43, 0x45, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x57, 0x52, 0x18,
- 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x43, 0x57, 0x52, 0x12, 0x0e, 0x0a, 0x02, 0x4e, 0x53,
- 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x4e, 0x53, 0x22, 0x51, 0x0a, 0x03, 0x55, 0x44,
- 0x50, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f,
- 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65,
- 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x52, 0x0a,
- 0x04, 0x53, 0x43, 0x54, 0x50, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f,
- 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72,
+ 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x54,
+ 0x43, 0x50, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x49, 0x4e, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x46, 0x49, 0x4e, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x59, 0x4e,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x53, 0x59, 0x4e, 0x12, 0x10, 0x0a, 0x03, 0x52,
+ 0x53, 0x54, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x52, 0x53, 0x54, 0x12, 0x10, 0x0a,
+ 0x03, 0x50, 0x53, 0x48, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x50, 0x53, 0x48, 0x12,
+ 0x10, 0x0a, 0x03, 0x41, 0x43, 0x4b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x41, 0x43,
+ 0x4b, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x52, 0x47, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03,
+ 0x55, 0x52, 0x47, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x43, 0x45, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x03, 0x45, 0x43, 0x45, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x57, 0x52, 0x18, 0x08, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x03, 0x43, 0x57, 0x52, 0x12, 0x0e, 0x0a, 0x02, 0x4e, 0x53, 0x18, 0x09, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x02, 0x4e, 0x53, 0x22, 0x51, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12,
+ 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70,
+ 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69,
+ 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x52, 0x0a, 0x04, 0x53, 0x43,
+ 0x54, 0x50, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50,
+ 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64,
+ 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x30,
+ 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04,
+ 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
+ 0x22, 0x30, 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79,
+ 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12,
+ 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f,
+ 0x64, 0x65, 0x22, 0x66, 0x0a, 0x0f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46,
+ 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x74,
+ 0x63, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x0f, 0x43, 0x69,
+ 0x6c, 0x69, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a,
+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb4, 0x09, 0x0a,
+ 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x75,
+ 0x75, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12,
+ 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x70, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x71, 0x64, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x71, 0x64, 0x6e, 0x12, 0x21, 0x0a, 0x0c,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12,
+ 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52,
+ 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12,
+ 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
+ 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x64, 0x12,
+ 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66,
+ 0x71, 0x64, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69,
+ 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x71, 0x64, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65,
+ 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18,
+ 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69,
+ 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74,
+ 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
+ 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x43, 0x0a, 0x11, 0x74,
+ 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72,
+ 0x61, 0x66, 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10,
+ 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x27, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28,
+ 0x0e, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74,
+ 0x52, 0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x76, 0x65,
+ 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e,
+ 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69,
+ 0x6c, 0x74, 0x65, 0x72, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x28, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63,
+ 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f,
+ 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09,
0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72,
- 0x74, 0x22, 0x30, 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x74,
- 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
- 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63,
- 0x6f, 0x64, 0x65, 0x22, 0x30, 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x36, 0x12, 0x12, 0x0a,
- 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70,
- 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
- 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x66, 0x0a, 0x0f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e,
- 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x75, 0x62, 0x54, 0x79,
- 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a,
- 0x0f, 0x43, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
- 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
- 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22,
- 0xb4, 0x09, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12,
- 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75,
- 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x70, 0x12,
- 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x64, 0x12, 0x1f,
- 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x71, 0x64, 0x6e, 0x18, 0x07, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x71, 0x64, 0x6e, 0x12,
- 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18,
- 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x62,
- 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72,
- 0x76, 0x69, 0x63, 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x0f, 0x73, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x1a, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f,
- 0x61, 0x64, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f,
- 0x61, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74,
- 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x73,
- 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x03,
- 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
- 0x6f, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x66, 0x71, 0x64, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65,
- 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x71, 0x64, 0x6e, 0x12, 0x2b, 0x0a,
- 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x62,
- 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65,
- 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x14, 0x64,
- 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c,
- 0x6f, 0x61, 0x64, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77,
- 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69,
- 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x43,
- 0x0a, 0x11, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x77,
- 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x10, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x18, 0x05,
- 0x20, 0x03, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x56, 0x65, 0x72, 0x64,
- 0x69, 0x63, 0x74, 0x52, 0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x12, 0x34, 0x0a, 0x0a,
- 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x15, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
- 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x68, 0x74,
- 0x74, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73,
- 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0e, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0f, 0x20,
- 0x03, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6e,
- 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x64,
- 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0d,
- 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
- 0x12, 0x31, 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13,
- 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74,
- 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x68,
- 0x6f, 0x64, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x4d, 0x65,
- 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x61, 0x74,
- 0x68, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74,
- 0x68, 0x12, 0x2b, 0x0a, 0x09, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x17,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x43, 0x50, 0x46,
- 0x6c, 0x61, 0x67, 0x73, 0x52, 0x08, 0x74, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1b,
- 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x69,
- 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0e, 0x32,
- 0x0f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
- 0x52, 0x09, 0x69, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x74,
- 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74,
- 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x22, 0xce, 0x01, 0x0a, 0x03, 0x44, 0x4e, 0x53, 0x12, 0x14,
- 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71,
- 0x75, 0x65, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x03, 0x69, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6e, 0x61, 0x6d,
- 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x73,
- 0x12, 0x2d, 0x0a, 0x12, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x62,
- 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
- 0x14, 0x0a, 0x05, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
- 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x71, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18,
- 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x71, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x18, 0x0a,
- 0x07, 0x72, 0x72, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
- 0x72, 0x72, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x34, 0x0a, 0x0a, 0x48, 0x54, 0x54, 0x50, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01,
- 0x0a, 0x04, 0x48, 0x54, 0x54, 0x50, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65,
- 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68,
- 0x6f, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
- 0x12, 0x2a, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0x9d, 0x01, 0x0a,
- 0x05, 0x4b, 0x61, 0x66, 0x6b, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,
- 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f,
- 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72,
- 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56,
- 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65,
- 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12,
- 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
- 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x3b, 0x0a, 0x07,
- 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e,
- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
- 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x09, 0x4c, 0x6f,
- 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c,
- 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06,
- 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
- 0x0d, 0x6e, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x6f, 0x73, 0x74, 0x12, 0x2d,
- 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e,
- 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x63, 0x70, 0x75, 0x22, 0xf6, 0x04,
- 0x0a, 0x0a, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x04,
- 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x66, 0x6c, 0x6f,
- 0x77, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
- 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77,
- 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41,
- 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e,
- 0x48, 0x00, 0x52, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x39, 0x0a, 0x0b, 0x61,
- 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x6f, 0x74, 0x69,
- 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x67, 0x65, 0x6e,
- 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x45, 0x0a, 0x0d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79,
- 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
- 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52,
- 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a,
- 0x13, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x65,
- 0x72, 0x61, 0x74, 0x65, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x6f,
- 0x77, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x4e,
- 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x65,
- 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
- 0x65, 0x12, 0x4b, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x70,
- 0x64, 0x61, 0x74, 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x66, 0x6c, 0x6f,
- 0x77, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e,
- 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x42,
- 0x0a, 0x0e, 0x69, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50,
- 0x43, 0x61, 0x63, 0x68, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x55, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x70,
- 0x73, 0x65, 0x72, 0x74, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x6f,
- 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e,
- 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x0e,
- 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x6b,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4b, 0x0a, 0x11, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45,
- 0x76, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74,
- 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
- 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x22, 0x42, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
- 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x18, 0x50, 0x6f, 0x6c, 0x69, 0x63,
- 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72,
- 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72,
- 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x5f,
- 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x75, 0x6c,
- 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x59, 0x0a, 0x19, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
- 0x6e, 0x74, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
- 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65,
- 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f,
- 0x72, 0x22, 0x93, 0x01, 0x0a, 0x1a, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70,
+ 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x08,
+ 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6e, 0x73, 0x5f, 0x71,
+ 0x75, 0x65, 0x72, 0x79, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x64, 0x6e, 0x73, 0x51,
+ 0x75, 0x65, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69,
+ 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a,
+ 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65,
+ 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x64, 0x65, 0x73,
+ 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18,
+ 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x4d, 0x65, 0x74, 0x68, 0x6f,
+ 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x16,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2b,
+ 0x0a, 0x09, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x43, 0x50, 0x46, 0x6c, 0x61, 0x67,
+ 0x73, 0x52, 0x08, 0x74, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e,
+ 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08,
+ 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x76,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x66,
+ 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x69,
+ 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63,
+ 0x65, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63,
+ 0x65, 0x49, 0x64, 0x22, 0xce, 0x01, 0x0a, 0x03, 0x44, 0x4e, 0x53, 0x12, 0x14, 0x0a, 0x05, 0x71,
+ 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03,
+ 0x69, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18,
+ 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2d, 0x0a,
+ 0x12, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x62, 0x73, 0x65, 0x72,
+ 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05,
+ 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x63, 0x6f,
+ 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x71, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x06, 0x71, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x72,
+ 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x72, 0x74,
+ 0x79, 0x70, 0x65, 0x73, 0x22, 0x34, 0x0a, 0x0a, 0x48, 0x54, 0x54, 0x50, 0x48, 0x65, 0x61, 0x64,
+ 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x04, 0x48,
+ 0x54, 0x54, 0x50, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f,
+ 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12,
+ 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,
+ 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2a, 0x0a,
+ 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10,
+ 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
+ 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x05, 0x4b, 0x61,
+ 0x66, 0x6b, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f,
+ 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e,
+ 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x3b, 0x0a, 0x07, 0x53, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d,
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x09, 0x4c, 0x6f, 0x73, 0x74, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x6f, 0x73, 0x74,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x75,
+ 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x6f, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x63,
+ 0x70, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32,
+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x63, 0x70, 0x75, 0x22, 0xf6, 0x04, 0x0a, 0x0a, 0x41,
+ 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41,
+ 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74,
+ 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x64,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x67, 0x65, 0x6e,
+ 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x48, 0x00, 0x52,
+ 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x67, 0x65, 0x6e,
+ 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
+ 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74,
+ 0x61, 0x72, 0x74, 0x12, 0x45, 0x0a, 0x0d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x6f,
+ 0x77, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f,
+ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x6f,
+ 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x65, 0x6e,
+ 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
+ 0x65, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45,
+ 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x4e, 0x6f, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x65, 0x6e, 0x64, 0x70,
+ 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x4b,
+ 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45,
+ 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x6e, 0x64,
+ 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x69,
+ 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x69, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x43, 0x61, 0x63,
+ 0x68, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00,
+ 0x52, 0x0d, 0x69, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
+ 0x48, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x73, 0x65, 0x72,
+ 0x74, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x6b, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x22, 0x4b, 0x0a, 0x11, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c,
+ 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x22, 0x42, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04,
+ 0x74, 0x69, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x18, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69,
+ 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69,
+ 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f,
+ 0x75, 0x6e, 0x74, 0x22, 0x59, 0x0a, 0x19, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52,
+ 0x65, 0x67, 0x65, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64,
0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f,
- 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x19,
- 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d,
- 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61,
- 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x99, 0x02, 0x0a, 0x13, 0x49, 0x50, 0x43, 0x61,
- 0x63, 0x68, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
- 0x12, 0x0a, 0x04, 0x63, 0x69, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63,
- 0x69, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12,
- 0x3f, 0x0a, 0x0c, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
- 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x6f, 0x6c, 0x64,
- 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
- 0x6f, 0x6c, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x63,
- 0x72, 0x79, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a,
- 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61,
- 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e,
- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f,
- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e,
- 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x1d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70,
- 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x41, 0x64, 0x64, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x9a, 0x03, 0x0a, 0x19, 0x53, 0x65, 0x72,
- 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4e, 0x0a, 0x10, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65,
- 0x6e, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55,
- 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x0f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x41,
- 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x50, 0x0a, 0x11, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e,
- 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
- 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x41,
- 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x0e,
- 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05,
- 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69,
- 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e,
- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
- 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x74,
- 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18,
- 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69,
- 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x5f, 0x74,
- 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x09, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50,
- 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x2b, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02,
- 0x69, 0x64, 0x22, 0x3c, 0x0a, 0x10, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74,
- 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x22, 0xef, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12,
- 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e,
- 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
- 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77,
- 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x12, 0x30, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68,
- 0x61, 0x73, 0x68, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
- 0x04, 0x61, 0x72, 0x67, 0x31, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x32, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x52, 0x04, 0x61, 0x72, 0x67, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x33, 0x18,
- 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x52, 0x04, 0x61, 0x72, 0x67, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x63,
- 0x70, 0x75, 0x2a, 0x39, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10,
- 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00,
- 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x33, 0x5f, 0x4c, 0x34, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4c,
- 0x37, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4f, 0x43, 0x4b, 0x10, 0x03, 0x2a, 0xea, 0x01,
- 0x0a, 0x15, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
- 0x57, 0x4e, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4f,
- 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x4f, 0x5f, 0x48,
- 0x4f, 0x53, 0x54, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x41, 0x43,
- 0x4b, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x4f, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x41,
- 0x59, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49,
- 0x4e, 0x54, 0x10, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x45, 0x4e, 0x44,
- 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x52, 0x4f, 0x4d, 0x5f,
- 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x52, 0x4f, 0x4d, 0x5f,
- 0x48, 0x4f, 0x53, 0x54, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x53,
- 0x54, 0x41, 0x43, 0x4b, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f,
- 0x56, 0x45, 0x52, 0x4c, 0x41, 0x59, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x52, 0x4f, 0x4d,
- 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x4f,
- 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0b, 0x2a, 0x48, 0x0a, 0x0a, 0x4c, 0x37,
- 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x4b, 0x4e,
- 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x37, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a,
- 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45,
- 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x4d, 0x50,
- 0x4c, 0x45, 0x10, 0x03, 0x2a, 0x30, 0x0a, 0x09, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x50, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x44,
- 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04,
- 0x49, 0x50, 0x76, 0x36, 0x10, 0x02, 0x2a, 0x7c, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63,
- 0x74, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, 0x52, 0x44, 0x49, 0x43, 0x54, 0x5f, 0x55, 0x4e, 0x4b,
- 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52,
- 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44,
- 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x09, 0x0a,
- 0x05, 0x41, 0x55, 0x44, 0x49, 0x54, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x44, 0x49,
- 0x52, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x52, 0x41, 0x43,
- 0x45, 0x44, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, 0x54,
- 0x45, 0x44, 0x10, 0x07, 0x2a, 0xb2, 0x0f, 0x0a, 0x0a, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61,
- 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53,
- 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12,
- 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4d,
- 0x41, 0x43, 0x10, 0x82, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44,
- 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x43,
- 0x10, 0x83, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53,
- 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x49, 0x50, 0x10, 0x84, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x50,
- 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x85, 0x01, 0x12,
- 0x1b, 0x0a, 0x16, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45,
- 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x86, 0x01, 0x12, 0x23, 0x0a, 0x1e,
- 0x43, 0x54, 0x5f, 0x54, 0x52, 0x55, 0x4e, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x52, 0x5f,
- 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x87,
- 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f,
- 0x54, 0x43, 0x50, 0x5f, 0x41, 0x43, 0x4b, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x88, 0x01, 0x12,
- 0x1b, 0x0a, 0x16, 0x43, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x34,
- 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x89, 0x01, 0x12, 0x27, 0x0a, 0x22,
- 0x43, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45,
- 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x50, 0x41, 0x43, 0x4b,
- 0x45, 0x54, 0x10, 0x8a, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f,
- 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4c, 0x33, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c,
- 0x10, 0x8b, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x49, 0x53, 0x53, 0x45, 0x44, 0x5f, 0x54, 0x41,
- 0x49, 0x4c, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x8c, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x52,
- 0x52, 0x4f, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x50,
- 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x8d, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e,
- 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x34, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10,
- 0x8e, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x43,
- 0x4d, 0x50, 0x56, 0x34, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x8f, 0x01, 0x12, 0x18, 0x0a, 0x13,
- 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x34, 0x5f, 0x54,
- 0x59, 0x50, 0x45, 0x10, 0x90, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
- 0x4e, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x91, 0x01,
- 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x43, 0x4d, 0x50,
- 0x56, 0x36, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x92, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x45, 0x52,
- 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x49, 0x4e, 0x47, 0x5f, 0x54,
- 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x93, 0x01, 0x12, 0x24, 0x0a, 0x1f,
- 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x49, 0x4e, 0x47,
- 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10,
- 0x94, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x47, 0x45,
- 0x4e, 0x45, 0x56, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x95, 0x01, 0x12, 0x1e,
- 0x0a, 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x54, 0x41, 0x52,
- 0x47, 0x45, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x96, 0x01, 0x12, 0x1b,
- 0x0a, 0x16, 0x53, 0x54, 0x41, 0x4c, 0x45, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x52, 0x4f, 0x55,
- 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x10, 0x97, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x4e,
- 0x4f, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c,
- 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44,
- 0x10, 0x98, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x57, 0x48, 0x49,
- 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x33,
- 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x10, 0x99, 0x01, 0x12, 0x27, 0x0a, 0x22,
- 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x57, 0x48, 0x49, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x52,
- 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x34, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53,
- 0x55, 0x4d, 0x10, 0x9a, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x54, 0x5f, 0x4d, 0x41, 0x50, 0x5f,
- 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44,
- 0x10, 0x9b, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x49,
- 0x50, 0x56, 0x36, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x45,
- 0x41, 0x44, 0x45, 0x52, 0x10, 0x9c, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x49, 0x50, 0x5f, 0x46, 0x52,
- 0x41, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f,
- 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x9d, 0x01, 0x12, 0x1e, 0x0a, 0x19,
- 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f,
- 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x9e, 0x01, 0x12, 0x28, 0x0a, 0x23,
- 0x4e, 0x4f, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x4e, 0x43,
- 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f,
- 0x49, 0x4e, 0x54, 0x10, 0xa0, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44,
- 0x5f, 0x54, 0x4f, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x4f, 0x5f,
- 0x50, 0x52, 0x4f, 0x58, 0x59, 0x4d, 0x41, 0x50, 0x10, 0xa1, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x52,
- 0x45, 0x41, 0x43, 0x48, 0x45, 0x44, 0x5f, 0x45, 0x44, 0x54, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x5f,
- 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x48, 0x4f,
- 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x10, 0xa2, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x55, 0x4e, 0x4b, 0x4e,
- 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54,
- 0x52, 0x41, 0x43, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xa3, 0x01,
- 0x12, 0x1e, 0x0a, 0x19, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x49,
- 0x53, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x10, 0xa4, 0x01,
- 0x12, 0x3a, 0x0a, 0x35, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41,
- 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54,
- 0x4f, 0x5f, 0x50, 0x45, 0x52, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59,
- 0x5f, 0x44, 0x45, 0x43, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0xa5, 0x01, 0x12, 0x1c, 0x0a, 0x17,
- 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4c, 0x32, 0x5f, 0x50,
- 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0xa6, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x4e, 0x4f,
- 0x5f, 0x4d, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x4e, 0x41, 0x54,
- 0x5f, 0x4d, 0x41, 0x53, 0x51, 0x55, 0x45, 0x52, 0x41, 0x44, 0x45, 0x10, 0xa7, 0x01, 0x12, 0x2c,
- 0x0a, 0x27, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x52,
- 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x4d,
- 0x41, 0x53, 0x51, 0x55, 0x45, 0x52, 0x41, 0x44, 0x45, 0x10, 0xa8, 0x01, 0x12, 0x16, 0x0a, 0x11,
- 0x46, 0x49, 0x42, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45,
- 0x44, 0x10, 0xa9, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c,
- 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x49, 0x53,
- 0x5f, 0x50, 0x52, 0x4f, 0x48, 0x49, 0x42, 0x49, 0x54, 0x45, 0x44, 0x10, 0xaa, 0x01, 0x12, 0x15,
- 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49,
- 0x54, 0x59, 0x10, 0xab, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
- 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x10, 0xac, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x4e, 0x41,
- 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0xad, 0x01, 0x12,
- 0x13, 0x0a, 0x0e, 0x49, 0x53, 0x5f, 0x41, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x49,
- 0x50, 0x10, 0xae, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4c, 0x4f,
- 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x47, 0x52, 0x41, 0x4d, 0x5f, 0x46,
- 0x52, 0x41, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e,
- 0x44, 0x10, 0xaf, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x46, 0x4f, 0x52, 0x42, 0x49, 0x44, 0x44, 0x45,
- 0x4e, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
- 0x10, 0xb0, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x5f, 0x42, 0x59,
- 0x5f, 0x4c, 0x42, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x43, 0x48,
- 0x45, 0x43, 0x4b, 0x10, 0xb1, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54,
- 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xb2,
- 0x01, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x53, 0x53, 0x49,
- 0x47, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xb3, 0x01, 0x12, 0x31, 0x0a, 0x2c,
- 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f,
- 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f,
- 0x46, 0x4f, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0xb4, 0x01, 0x12,
- 0x10, 0x0a, 0x0b, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0xb5,
- 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52,
- 0x45, 0x44, 0x10, 0xb6, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44,
- 0x5f, 0x56, 0x4e, 0x49, 0x10, 0xb7, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x41, 0x4c,
- 0x49, 0x44, 0x5f, 0x54, 0x43, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 0xb8, 0x01, 0x12,
- 0x0b, 0x0a, 0x06, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, 0x10, 0xb9, 0x01, 0x12, 0x17, 0x0a, 0x12,
- 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x54, 0x41,
- 0x54, 0x45, 0x10, 0xba, 0x01, 0x12, 0x0a, 0x0a, 0x05, 0x4e, 0x41, 0x54, 0x34, 0x36, 0x10, 0xbb,
- 0x01, 0x12, 0x0a, 0x0a, 0x05, 0x4e, 0x41, 0x54, 0x36, 0x34, 0x10, 0xbc, 0x01, 0x12, 0x12, 0x0a,
- 0x0d, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0xbd,
- 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x46,
- 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xbe, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x4e, 0x41, 0x54, 0x5f,
- 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xbf, 0x01, 0x12,
- 0x17, 0x0a, 0x12, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54,
- 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0xc0, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x55, 0x4e, 0x53, 0x55,
- 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c,
- 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x44, 0x53, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0xc1,
- 0x01, 0x12, 0x16, 0x0a, 0x11, 0x4e, 0x4f, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x47,
- 0x41, 0x54, 0x45, 0x57, 0x41, 0x59, 0x10, 0xc2, 0x01, 0x2a, 0x4a, 0x0a, 0x10, 0x54, 0x72, 0x61,
- 0x66, 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a,
- 0x19, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49,
- 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
- 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x47, 0x52,
- 0x45, 0x53, 0x53, 0x10, 0x02, 0x2a, 0x8d, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43,
- 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x44,
- 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54,
- 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42,
- 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45,
- 0x52, 0x59, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54,
- 0x55, 0x52, 0x45, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4c, 0x42, 0x10, 0x05, 0x12, 0x19, 0x0a,
- 0x15, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x46, 0x54,
- 0x45, 0x52, 0x5f, 0x56, 0x34, 0x36, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f,
- 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x36,
- 0x34, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55,
- 0x52, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x10, 0x08, 0x12, 0x1a,
- 0x0a, 0x16, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x50, 0x52,
- 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42,
- 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x50,
- 0x52, 0x45, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54,
- 0x55, 0x52, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x0b, 0x22,
- 0x04, 0x08, 0x01, 0x10, 0x03, 0x2a, 0x39, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
- 0x0f, 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x10, 0x09,
- 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x02,
- 0x2a, 0x7f, 0x0a, 0x0f, 0x4c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c,
- 0x4f, 0x53, 0x54, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
- 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x45, 0x52, 0x46, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54,
- 0x5f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 0x01, 0x12, 0x19,
- 0x0a, 0x15, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54,
- 0x53, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x55, 0x42,
- 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10,
- 0x03, 0x2a, 0xae, 0x02, 0x0a, 0x0e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74,
- 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x56,
- 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a,
- 0x0d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02,
- 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54,
- 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x44,
- 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x44, 0x50,
+ 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x93,
+ 0x01, 0x0a, 0x1a, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a,
+ 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a,
+ 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x70,
+ 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70,
+ 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x22, 0x99, 0x02, 0x0a, 0x13, 0x49, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65,
+ 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
+ 0x63, 0x69, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x64, 0x72,
+ 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0c,
+ 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a,
+ 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x68, 0x6f, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x5f, 0x68, 0x6f,
+ 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6c, 0x64,
+ 0x48, 0x6f, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70,
+ 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x63,
+ 0x72, 0x79, 0x70, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65,
+ 0x22, 0x43, 0x0a, 0x1d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72,
+ 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64,
+ 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
+ 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x9a, 0x03, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x02, 0x69, 0x64, 0x12, 0x4e, 0x0a, 0x10, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x5f,
+ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e,
+ 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65,
+ 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64,
+ 0x64, 0x72, 0x52, 0x0f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72,
+ 0x65, 0x73, 0x73, 0x12, 0x50, 0x0a, 0x11, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x61,
+ 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23,
+ 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73,
+ 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41,
+ 0x64, 0x64, 0x72, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72,
+ 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x74, 0x72, 0x61,
+ 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f,
+ 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d,
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x72,
+ 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f,
+ 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x66,
+ 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x10, 0x69, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69,
+ 0x63, 0x79, 0x22, 0x2b, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22,
+ 0x3c, 0x0a, 0x10, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xef, 0x02,
+ 0x0a, 0x0a, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x04,
+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x66, 0x6c, 0x6f,
+ 0x77, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6e,
+ 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x30,
+ 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55,
+ 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68,
+ 0x12, 0x30, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x61, 0x72,
+ 0x67, 0x31, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04,
+ 0x61, 0x72, 0x67, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x33, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x52, 0x04, 0x61, 0x72, 0x67, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x2d, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x63, 0x70, 0x75, 0x2a,
+ 0x39, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x55,
+ 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a,
+ 0x05, 0x4c, 0x33, 0x5f, 0x4c, 0x34, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x37, 0x10, 0x02,
+ 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4f, 0x43, 0x4b, 0x10, 0x03, 0x2a, 0x40, 0x0a, 0x08, 0x41, 0x75,
+ 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00,
+ 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x54,
+ 0x4c, 0x53, 0x5f, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x41,
+ 0x4c, 0x57, 0x41, 0x59, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x03, 0x2a, 0xea, 0x01, 0x0a,
+ 0x15, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
+ 0x4e, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4f, 0x5f,
+ 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x4f, 0x5f, 0x48, 0x4f,
+ 0x53, 0x54, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x41, 0x43, 0x4b,
+ 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x4f, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x41, 0x59,
+ 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e,
+ 0x54, 0x10, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x45, 0x4e, 0x44, 0x50,
+ 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x50,
+ 0x52, 0x4f, 0x58, 0x59, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x48,
+ 0x4f, 0x53, 0x54, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x53, 0x54,
+ 0x41, 0x43, 0x4b, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 0x56,
+ 0x45, 0x52, 0x4c, 0x41, 0x59, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x52, 0x4f, 0x4d, 0x5f,
+ 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x4f, 0x5f,
+ 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0b, 0x2a, 0x48, 0x0a, 0x0a, 0x4c, 0x37, 0x46,
+ 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+ 0x57, 0x4e, 0x5f, 0x4c, 0x37, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
+ 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x53,
+ 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x4d, 0x50, 0x4c,
+ 0x45, 0x10, 0x03, 0x2a, 0x30, 0x0a, 0x09, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x50, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10,
+ 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x49,
+ 0x50, 0x76, 0x36, 0x10, 0x02, 0x2a, 0x7c, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74,
+ 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, 0x52, 0x44, 0x49, 0x43, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,
+ 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44,
+ 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10,
+ 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05,
+ 0x41, 0x55, 0x44, 0x49, 0x54, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x44, 0x49, 0x52,
+ 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x52, 0x41, 0x43, 0x45,
+ 0x44, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, 0x54, 0x45,
+ 0x44, 0x10, 0x07, 0x2a, 0xb2, 0x0f, 0x0a, 0x0a, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73,
+ 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f,
+ 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x49,
+ 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x41,
+ 0x43, 0x10, 0x82, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f,
+ 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x43, 0x10,
+ 0x83, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x4f,
+ 0x55, 0x52, 0x43, 0x45, 0x5f, 0x49, 0x50, 0x10, 0x84, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x4f,
+ 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x85, 0x01, 0x12, 0x1b,
+ 0x0a, 0x16, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
+ 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x86, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x43,
+ 0x54, 0x5f, 0x54, 0x52, 0x55, 0x4e, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x52, 0x5f, 0x49,
+ 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x87, 0x01,
+ 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54,
+ 0x43, 0x50, 0x5f, 0x41, 0x43, 0x4b, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x88, 0x01, 0x12, 0x1b,
+ 0x0a, 0x16, 0x43, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x34, 0x5f,
+ 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x89, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x43,
+ 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f,
+ 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45,
+ 0x54, 0x10, 0x8a, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52,
+ 0x54, 0x45, 0x44, 0x5f, 0x4c, 0x33, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10,
+ 0x8b, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x49, 0x53, 0x53, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x49,
+ 0x4c, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x8c, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x52, 0x52,
+ 0x4f, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x41,
+ 0x43, 0x4b, 0x45, 0x54, 0x10, 0x8d, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+ 0x57, 0x4e, 0x5f, 0x4c, 0x34, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x8e,
+ 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x43, 0x4d,
+ 0x50, 0x56, 0x34, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x8f, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55,
+ 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x34, 0x5f, 0x54, 0x59,
+ 0x50, 0x45, 0x10, 0x90, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
+ 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x91, 0x01, 0x12,
+ 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56,
+ 0x36, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x92, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x45, 0x52, 0x52,
+ 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x55,
+ 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x93, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x45,
+ 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x49, 0x4e, 0x47, 0x5f,
+ 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x94,
+ 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x47, 0x45, 0x4e,
+ 0x45, 0x56, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x95, 0x01, 0x12, 0x1e, 0x0a,
+ 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x54, 0x41, 0x52, 0x47,
+ 0x45, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x96, 0x01, 0x12, 0x1b, 0x0a,
+ 0x16, 0x53, 0x54, 0x41, 0x4c, 0x45, 0x5f, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x52, 0x4f, 0x55, 0x54,
+ 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x10, 0x97, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x4e, 0x4f,
+ 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f,
+ 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10,
+ 0x98, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x57, 0x48, 0x49, 0x4c,
+ 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x33, 0x5f,
+ 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x10, 0x99, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x45,
+ 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x57, 0x48, 0x49, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45,
+ 0x43, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x34, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55,
+ 0x4d, 0x10, 0x9a, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x54, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x49,
+ 0x4e, 0x53, 0x45, 0x52, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10,
+ 0x9b, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x49, 0x50,
+ 0x56, 0x36, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x45, 0x41,
+ 0x44, 0x45, 0x52, 0x10, 0x9c, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41,
+ 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53,
+ 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x9d, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x53,
+ 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x4e,
+ 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x9e, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x4e,
+ 0x4f, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x41,
+ 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49,
+ 0x4e, 0x54, 0x10, 0xa0, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f,
+ 0x54, 0x4f, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x4f, 0x5f, 0x50,
+ 0x52, 0x4f, 0x58, 0x59, 0x4d, 0x41, 0x50, 0x10, 0xa1, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x52, 0x45,
+ 0x41, 0x43, 0x48, 0x45, 0x44, 0x5f, 0x45, 0x44, 0x54, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x4c,
+ 0x49, 0x4d, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x48, 0x4f, 0x52,
+ 0x49, 0x5a, 0x4f, 0x4e, 0x10, 0xa2, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+ 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52,
+ 0x41, 0x43, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xa3, 0x01, 0x12,
+ 0x1e, 0x0a, 0x19, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x49, 0x53,
+ 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x10, 0xa4, 0x01, 0x12,
+ 0x3a, 0x0a, 0x35, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54,
+ 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x4f,
+ 0x5f, 0x50, 0x45, 0x52, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f,
+ 0x44, 0x45, 0x43, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0xa5, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x55,
+ 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4c, 0x32, 0x5f, 0x50, 0x52,
+ 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0xa6, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x4e, 0x4f, 0x5f,
+ 0x4d, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f,
+ 0x4d, 0x41, 0x53, 0x51, 0x55, 0x45, 0x52, 0x41, 0x44, 0x45, 0x10, 0xa7, 0x01, 0x12, 0x2c, 0x0a,
+ 0x27, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f,
+ 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x4d, 0x41,
+ 0x53, 0x51, 0x55, 0x45, 0x52, 0x41, 0x44, 0x45, 0x10, 0xa8, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x46,
+ 0x49, 0x42, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44,
+ 0x10, 0xa9, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41,
+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x49, 0x53, 0x5f,
+ 0x50, 0x52, 0x4f, 0x48, 0x49, 0x42, 0x49, 0x54, 0x45, 0x44, 0x10, 0xaa, 0x01, 0x12, 0x15, 0x0a,
+ 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54,
+ 0x59, 0x10, 0xab, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f,
+ 0x53, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x10, 0xac, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x4e, 0x41, 0x54,
+ 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0xad, 0x01, 0x12, 0x13,
+ 0x0a, 0x0e, 0x49, 0x53, 0x5f, 0x41, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x49, 0x50,
+ 0x10, 0xae, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x47,
+ 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x47, 0x52, 0x41, 0x4d, 0x5f, 0x46, 0x52,
+ 0x41, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44,
+ 0x10, 0xaf, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x46, 0x4f, 0x52, 0x42, 0x49, 0x44, 0x44, 0x45, 0x4e,
+ 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10,
+ 0xb0, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x5f,
+ 0x4c, 0x42, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x43, 0x48, 0x45,
+ 0x43, 0x4b, 0x10, 0xb1, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f,
+ 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xb2, 0x01,
+ 0x12, 0x19, 0x0a, 0x14, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47,
+ 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xb3, 0x01, 0x12, 0x31, 0x0a, 0x2c, 0x50,
+ 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e,
+ 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x46,
+ 0x4f, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0xb4, 0x01, 0x12, 0x10,
+ 0x0a, 0x0b, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0xb5, 0x01,
+ 0x12, 0x12, 0x0a, 0x0d, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x45,
+ 0x44, 0x10, 0xb6, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f,
+ 0x56, 0x4e, 0x49, 0x10, 0xb7, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49,
+ 0x44, 0x5f, 0x54, 0x43, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 0xb8, 0x01, 0x12, 0x0b,
+ 0x0a, 0x06, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, 0x10, 0xb9, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x4d,
+ 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x54, 0x41, 0x54,
+ 0x45, 0x10, 0xba, 0x01, 0x12, 0x0a, 0x0a, 0x05, 0x4e, 0x41, 0x54, 0x34, 0x36, 0x10, 0xbb, 0x01,
+ 0x12, 0x0a, 0x0a, 0x05, 0x4e, 0x41, 0x54, 0x36, 0x34, 0x10, 0xbc, 0x01, 0x12, 0x12, 0x0a, 0x0d,
+ 0x41, 0x55, 0x54, 0x48, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0xbd, 0x01,
+ 0x12, 0x14, 0x0a, 0x0f, 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x46, 0x4f,
+ 0x55, 0x4e, 0x44, 0x10, 0xbe, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x4e,
+ 0x4f, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xbf, 0x01, 0x12, 0x17,
+ 0x0a, 0x12, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45,
+ 0x52, 0x5f, 0x49, 0x44, 0x10, 0xc0, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x55, 0x4e, 0x53, 0x55, 0x50,
+ 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f,
+ 0x46, 0x4f, 0x52, 0x5f, 0x44, 0x53, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0xc1, 0x01,
+ 0x12, 0x16, 0x0a, 0x11, 0x4e, 0x4f, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x47, 0x41,
+ 0x54, 0x45, 0x57, 0x41, 0x59, 0x10, 0xc2, 0x01, 0x2a, 0x4a, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x66,
+ 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19,
+ 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f,
+ 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49,
+ 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x47, 0x52, 0x45,
+ 0x53, 0x53, 0x10, 0x02, 0x2a, 0x8d, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x61,
+ 0x70, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x42,
+ 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f,
+ 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42, 0x47,
+ 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52,
+ 0x59, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55,
+ 0x52, 0x45, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4c, 0x42, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15,
+ 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x46, 0x54, 0x45,
+ 0x52, 0x5f, 0x56, 0x34, 0x36, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x43,
+ 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x36, 0x34,
+ 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52,
+ 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x10, 0x08, 0x12, 0x1a, 0x0a,
+ 0x16, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x50, 0x52, 0x4f,
+ 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42, 0x47,
+ 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x50, 0x52,
+ 0x45, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55,
+ 0x52, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x0b, 0x22, 0x04,
+ 0x08, 0x01, 0x10, 0x03, 0x2a, 0x39, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f,
+ 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x10, 0x09, 0x12,
+ 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x02, 0x2a,
+ 0x7f, 0x0a, 0x0f, 0x4c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x4f,
+ 0x53, 0x54, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10,
+ 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x45, 0x52, 0x46, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f,
+ 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 0x01, 0x12, 0x19, 0x0a,
+ 0x15, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53,
+ 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x55, 0x42, 0x42,
+ 0x4c, 0x45, 0x5f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 0x03,
+ 0x2a, 0xae, 0x02, 0x0a, 0x0e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x56, 0x45,
+ 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
+ 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12,
+ 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,
+ 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x44, 0x45,
+ 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x44, 0x50, 0x4f,
+ 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x53,
+ 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x44, 0x50,
0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f,
- 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x44,
- 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45,
- 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e,
- 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x07,
- 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x4c,
- 0x45, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x50, 0x43, 0x41, 0x43, 0x48,
- 0x45, 0x5f, 0x55, 0x50, 0x53, 0x45, 0x52, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f,
- 0x49, 0x50, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10,
- 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x50, 0x53,
- 0x45, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x52, 0x56, 0x49,
- 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x0c, 0x22, 0x04, 0x08, 0x01,
- 0x10, 0x01, 0x2a, 0xd8, 0x01, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61,
- 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a,
- 0x18, 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e,
- 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53,
+ 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e, 0x44,
+ 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x07, 0x12,
+ 0x14, 0x0a, 0x10, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x45,
+ 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x50, 0x43, 0x41, 0x43, 0x48, 0x45,
+ 0x5f, 0x55, 0x50, 0x53, 0x45, 0x52, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x49,
+ 0x50, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x0a,
+ 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x50, 0x53, 0x45,
+ 0x52, 0x54, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43,
+ 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x0c, 0x22, 0x04, 0x08, 0x01, 0x10,
+ 0x01, 0x2a, 0xd8, 0x01, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x18,
+ 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54,
+ 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x4f,
+ 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x50,
+ 0x52, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x57, 0x44,
+ 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 0x45,
+ 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45,
+ 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x57, 0x44, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x53,
0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f,
- 0x50, 0x52, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x57,
- 0x44, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54,
+ 0x50, 0x52, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45,
+ 0x56, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54,
0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x44, 0x49, 0x52,
- 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x57, 0x44, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22,
- 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54,
- 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52,
- 0x45, 0x56, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41,
- 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x44, 0x49,
- 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x56, 0x10, 0x04, 0x2a, 0xdd, 0x0c,
- 0x0a, 0x0e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
- 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e,
- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x42, 0x47, 0x5f, 0x47,
- 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x42, 0x47, 0x5f,
- 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x59, 0x10, 0x02,
- 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x42, 0x47, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0x03, 0x12,
- 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x58, 0x43, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44,
- 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59,
- 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47,
- 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11,
- 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x52, 0x45,
- 0x56, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4d, 0x41,
- 0x54, 0x43, 0x48, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f,
- 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47,
- 0x5f, 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x32, 0x10, 0x0a, 0x12, 0x14,
- 0x0a, 0x10, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36, 0x5f, 0x48, 0x41, 0x4e, 0x44,
- 0x4c, 0x45, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50,
- 0x36, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x44,
- 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36, 0x5f, 0x4e, 0x53, 0x10, 0x0d, 0x12, 0x1b, 0x0a,
- 0x17, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f,
- 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42,
- 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x44, 0x49, 0x43, 0x54, 0x10, 0x0f, 0x12, 0x0d,
- 0x0a, 0x09, 0x44, 0x42, 0x47, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x10, 0x10, 0x12, 0x10, 0x0a,
- 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x11, 0x12,
- 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54,
- 0x10, 0x12, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x42, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x48, 0x4f, 0x53,
- 0x54, 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x54,
- 0x41, 0x43, 0x4b, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x50, 0x4b, 0x54,
- 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x15, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x42, 0x47, 0x5f, 0x4c,
- 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45,
- 0x4e, 0x44, 0x10, 0x16, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f,
- 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x44, 0x5f,
- 0x46, 0x41, 0x49, 0x4c, 0x10, 0x17, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42,
+ 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x56, 0x10, 0x04, 0x2a, 0xdd, 0x0c, 0x0a,
+ 0x0e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x4b,
+ 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x42, 0x47, 0x5f, 0x47, 0x45,
+ 0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x42, 0x47, 0x5f, 0x4c,
+ 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x59, 0x10, 0x02, 0x12,
+ 0x0d, 0x0a, 0x09, 0x44, 0x42, 0x47, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0x03, 0x12, 0x11,
+ 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x58, 0x43, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10,
+ 0x04, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f,
+ 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f,
+ 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x44,
+ 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x56,
+ 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4d, 0x41, 0x54,
+ 0x43, 0x48, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x43,
+ 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 0x5f,
+ 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x32, 0x10, 0x0a, 0x12, 0x14, 0x0a,
+ 0x10, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c,
+ 0x45, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36,
+ 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42,
+ 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36, 0x5f, 0x4e, 0x53, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17,
+ 0x44, 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x45,
+ 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47,
+ 0x5f, 0x43, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x44, 0x49, 0x43, 0x54, 0x10, 0x0f, 0x12, 0x0d, 0x0a,
+ 0x09, 0x44, 0x42, 0x47, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x10, 0x10, 0x12, 0x10, 0x0a, 0x0c,
+ 0x44, 0x42, 0x47, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x11, 0x12, 0x11,
+ 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x10,
+ 0x12, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x42, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x48, 0x4f, 0x53, 0x54,
+ 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x41,
+ 0x43, 0x4b, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x50, 0x4b, 0x54, 0x5f,
+ 0x48, 0x41, 0x53, 0x48, 0x10, 0x15, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42,
+ 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e,
+ 0x44, 0x10, 0x16, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x4c,
+ 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x44, 0x5f, 0x46,
+ 0x41, 0x49, 0x4c, 0x10, 0x17, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x36,
+ 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f,
+ 0x53, 0x4c, 0x4f, 0x54, 0x10, 0x18, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42,
0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44,
- 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x10, 0x18, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x42, 0x47, 0x5f, 0x4c,
- 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e,
- 0x44, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x19,
- 0x12, 0x27, 0x0a, 0x23, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b,
- 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f,
- 0x56, 0x32, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x1a, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47,
- 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b,
- 0x45, 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x1b, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x42,
- 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41,
- 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x1c, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42,
- 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41,
- 0x54, 0x10, 0x1d, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c,
- 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x44, 0x10, 0x1e,
- 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b,
- 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c,
- 0x10, 0x1f, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f,
+ 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x19, 0x12,
+ 0x27, 0x0a, 0x23, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55,
+ 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x56,
+ 0x32, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x1a, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f,
+ 0x4c, 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45,
+ 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x1b, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x42, 0x47,
+ 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 0x54,
+ 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x1c, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47,
+ 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 0x54,
+ 0x10, 0x1d, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f,
+ 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x44, 0x10, 0x1e, 0x12,
+ 0x20, 0x0a, 0x1c, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55,
+ 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10,
+ 0x1f, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f,
+ 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x4f, 0x54,
+ 0x10, 0x20, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f,
0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x4f,
- 0x54, 0x10, 0x20, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c,
- 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c,
- 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x21, 0x12, 0x27, 0x0a, 0x23,
- 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42,
- 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x56, 0x32, 0x5f, 0x46,
- 0x41, 0x49, 0x4c, 0x10, 0x22, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34,
- 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f,
- 0x46, 0x41, 0x49, 0x4c, 0x10, 0x23, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42,
- 0x34, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x4c, 0x4f,
- 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x24, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42,
- 0x34, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x25, 0x12,
- 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42,
- 0x41, 0x43, 0x4b, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x42,
- 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x53,
- 0x4e, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x10, 0x27, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47,
- 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x34, 0x10, 0x28, 0x12, 0x1b, 0x0a,
- 0x17, 0x44, 0x42, 0x47, 0x5f, 0x52, 0x52, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f,
- 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x10, 0x29, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42,
- 0x47, 0x5f, 0x52, 0x45, 0x56, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b,
- 0x55, 0x50, 0x10, 0x2a, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x5f,
- 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x2b, 0x12, 0x18, 0x0a,
- 0x14, 0x44, 0x42, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x55,
- 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x2c, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x4c,
- 0x34, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x2d, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42,
- 0x47, 0x5f, 0x4e, 0x45, 0x54, 0x44, 0x45, 0x56, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4c, 0x55, 0x53,
- 0x54, 0x45, 0x52, 0x10, 0x2e, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x4e, 0x45, 0x54,
- 0x44, 0x45, 0x56, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x34, 0x10, 0x2f, 0x12, 0x14, 0x0a, 0x10,
- 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x34, 0x5f, 0x31,
- 0x10, 0x30, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f,
- 0x4b, 0x55, 0x50, 0x34, 0x5f, 0x32, 0x10, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 0x5f,
- 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x34, 0x10, 0x32, 0x12, 0x14, 0x0a,
- 0x10, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x36, 0x5f,
- 0x31, 0x10, 0x33, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f,
- 0x4f, 0x4b, 0x55, 0x50, 0x36, 0x5f, 0x32, 0x10, 0x34, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47,
- 0x5f, 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x36, 0x10, 0x35, 0x12, 0x12,
- 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59,
- 0x10, 0x36, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x34, 0x5f, 0x43, 0x52, 0x45,
- 0x41, 0x54, 0x45, 0x10, 0x37, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x50, 0x5f,
- 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x34, 0x10, 0x38,
- 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41,
- 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x36, 0x10, 0x39, 0x12, 0x1a, 0x0a, 0x16, 0x44,
- 0x42, 0x47, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x43,
- 0x43, 0x45, 0x45, 0x44, 0x34, 0x10, 0x3a, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x42, 0x47, 0x5f, 0x49,
- 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44,
- 0x36, 0x10, 0x3b, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x5f, 0x53, 0x54,
- 0x41, 0x4c, 0x45, 0x5f, 0x43, 0x54, 0x10, 0x3c, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42, 0x47, 0x5f,
- 0x49, 0x4e, 0x48, 0x45, 0x52, 0x49, 0x54, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59,
- 0x10, 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b, 0x5f, 0x4c, 0x4f, 0x4f,
- 0x4b, 0x55, 0x50, 0x34, 0x10, 0x3e, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b,
- 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x36, 0x10, 0x3f, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42,
- 0x47, 0x5f, 0x53, 0x4b, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x40, 0x42, 0x26, 0x5a,
- 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69,
- 0x75, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
- 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x21, 0x12, 0x27, 0x0a, 0x23, 0x44,
+ 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41,
+ 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x56, 0x32, 0x5f, 0x46, 0x41,
+ 0x49, 0x4c, 0x10, 0x22, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f,
+ 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x46,
+ 0x41, 0x49, 0x4c, 0x10, 0x23, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34,
+ 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x4c, 0x4f, 0x4f,
+ 0x4b, 0x55, 0x50, 0x10, 0x24, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34,
+ 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x25, 0x12, 0x19,
+ 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41,
+ 0x43, 0x4b, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x42, 0x47,
+ 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x53, 0x4e,
+ 0x41, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x10, 0x27, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f,
+ 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x34, 0x10, 0x28, 0x12, 0x1b, 0x0a, 0x17,
+ 0x44, 0x42, 0x47, 0x5f, 0x52, 0x52, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53,
+ 0x4c, 0x4f, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x10, 0x29, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42, 0x47,
+ 0x5f, 0x52, 0x45, 0x56, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55,
+ 0x50, 0x10, 0x2a, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x5f, 0x50,
+ 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x2b, 0x12, 0x18, 0x0a, 0x14,
+ 0x44, 0x42, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x55, 0x50,
+ 0x44, 0x41, 0x54, 0x45, 0x10, 0x2c, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x34,
+ 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x2d, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47,
+ 0x5f, 0x4e, 0x45, 0x54, 0x44, 0x45, 0x56, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54,
+ 0x45, 0x52, 0x10, 0x2e, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x4e, 0x45, 0x54, 0x44,
+ 0x45, 0x56, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x34, 0x10, 0x2f, 0x12, 0x14, 0x0a, 0x10, 0x44,
+ 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x34, 0x5f, 0x31, 0x10,
+ 0x30, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b,
+ 0x55, 0x50, 0x34, 0x5f, 0x32, 0x10, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 0x5f, 0x43,
+ 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x34, 0x10, 0x32, 0x12, 0x14, 0x0a, 0x10,
+ 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x36, 0x5f, 0x31,
+ 0x10, 0x33, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f,
+ 0x4b, 0x55, 0x50, 0x36, 0x5f, 0x32, 0x10, 0x34, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 0x5f,
+ 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x36, 0x10, 0x35, 0x12, 0x12, 0x0a,
+ 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10,
+ 0x36, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x34, 0x5f, 0x43, 0x52, 0x45, 0x41,
+ 0x54, 0x45, 0x10, 0x37, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x50, 0x5f, 0x49,
+ 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x34, 0x10, 0x38, 0x12,
+ 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x50,
+ 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x36, 0x10, 0x39, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x42,
+ 0x47, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x43, 0x43,
+ 0x45, 0x45, 0x44, 0x34, 0x10, 0x3a, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x50,
+ 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x36,
+ 0x10, 0x3b, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x5f, 0x53, 0x54, 0x41,
+ 0x4c, 0x45, 0x5f, 0x43, 0x54, 0x10, 0x3c, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42, 0x47, 0x5f, 0x49,
+ 0x4e, 0x48, 0x45, 0x52, 0x49, 0x54, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x10,
+ 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b,
+ 0x55, 0x50, 0x34, 0x10, 0x3e, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b, 0x5f,
+ 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x36, 0x10, 0x3f, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47,
+ 0x5f, 0x53, 0x4b, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x40, 0x42, 0x26, 0x5a, 0x24,
+ 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75,
+ 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
+ 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -5242,132 +5312,134 @@ func file_flow_flow_proto_rawDescGZIP() []byte {
return file_flow_flow_proto_rawDescData
}
-var file_flow_flow_proto_enumTypes = make([]protoimpl.EnumInfo, 13)
+var file_flow_flow_proto_enumTypes = make([]protoimpl.EnumInfo, 14)
var file_flow_flow_proto_msgTypes = make([]protoimpl.MessageInfo, 36)
var file_flow_flow_proto_goTypes = []interface{}{
(FlowType)(0), // 0: flow.FlowType
- (TraceObservationPoint)(0), // 1: flow.TraceObservationPoint
- (L7FlowType)(0), // 2: flow.L7FlowType
- (IPVersion)(0), // 3: flow.IPVersion
- (Verdict)(0), // 4: flow.Verdict
- (DropReason)(0), // 5: flow.DropReason
- (TrafficDirection)(0), // 6: flow.TrafficDirection
- (DebugCapturePoint)(0), // 7: flow.DebugCapturePoint
- (EventType)(0), // 8: flow.EventType
- (LostEventSource)(0), // 9: flow.LostEventSource
- (AgentEventType)(0), // 10: flow.AgentEventType
- (SocketTranslationPoint)(0), // 11: flow.SocketTranslationPoint
- (DebugEventType)(0), // 12: flow.DebugEventType
- (*Flow)(nil), // 13: flow.Flow
- (*Layer4)(nil), // 14: flow.Layer4
- (*Layer7)(nil), // 15: flow.Layer7
- (*TraceContext)(nil), // 16: flow.TraceContext
- (*TraceParent)(nil), // 17: flow.TraceParent
- (*Endpoint)(nil), // 18: flow.Endpoint
- (*Workload)(nil), // 19: flow.Workload
- (*TCP)(nil), // 20: flow.TCP
- (*IP)(nil), // 21: flow.IP
- (*Ethernet)(nil), // 22: flow.Ethernet
- (*TCPFlags)(nil), // 23: flow.TCPFlags
- (*UDP)(nil), // 24: flow.UDP
- (*SCTP)(nil), // 25: flow.SCTP
- (*ICMPv4)(nil), // 26: flow.ICMPv4
- (*ICMPv6)(nil), // 27: flow.ICMPv6
- (*EventTypeFilter)(nil), // 28: flow.EventTypeFilter
- (*CiliumEventType)(nil), // 29: flow.CiliumEventType
- (*FlowFilter)(nil), // 30: flow.FlowFilter
- (*DNS)(nil), // 31: flow.DNS
- (*HTTPHeader)(nil), // 32: flow.HTTPHeader
- (*HTTP)(nil), // 33: flow.HTTP
- (*Kafka)(nil), // 34: flow.Kafka
- (*Service)(nil), // 35: flow.Service
- (*LostEvent)(nil), // 36: flow.LostEvent
- (*AgentEvent)(nil), // 37: flow.AgentEvent
- (*AgentEventUnknown)(nil), // 38: flow.AgentEventUnknown
- (*TimeNotification)(nil), // 39: flow.TimeNotification
- (*PolicyUpdateNotification)(nil), // 40: flow.PolicyUpdateNotification
- (*EndpointRegenNotification)(nil), // 41: flow.EndpointRegenNotification
- (*EndpointUpdateNotification)(nil), // 42: flow.EndpointUpdateNotification
- (*IPCacheNotification)(nil), // 43: flow.IPCacheNotification
- (*ServiceUpsertNotificationAddr)(nil), // 44: flow.ServiceUpsertNotificationAddr
- (*ServiceUpsertNotification)(nil), // 45: flow.ServiceUpsertNotification
- (*ServiceDeleteNotification)(nil), // 46: flow.ServiceDeleteNotification
- (*NetworkInterface)(nil), // 47: flow.NetworkInterface
- (*DebugEvent)(nil), // 48: flow.DebugEvent
- (*timestamppb.Timestamp)(nil), // 49: google.protobuf.Timestamp
- (*wrapperspb.BoolValue)(nil), // 50: google.protobuf.BoolValue
- (*wrapperspb.Int32Value)(nil), // 51: google.protobuf.Int32Value
- (*wrapperspb.UInt32Value)(nil), // 52: google.protobuf.UInt32Value
+ (AuthType)(0), // 1: flow.AuthType
+ (TraceObservationPoint)(0), // 2: flow.TraceObservationPoint
+ (L7FlowType)(0), // 3: flow.L7FlowType
+ (IPVersion)(0), // 4: flow.IPVersion
+ (Verdict)(0), // 5: flow.Verdict
+ (DropReason)(0), // 6: flow.DropReason
+ (TrafficDirection)(0), // 7: flow.TrafficDirection
+ (DebugCapturePoint)(0), // 8: flow.DebugCapturePoint
+ (EventType)(0), // 9: flow.EventType
+ (LostEventSource)(0), // 10: flow.LostEventSource
+ (AgentEventType)(0), // 11: flow.AgentEventType
+ (SocketTranslationPoint)(0), // 12: flow.SocketTranslationPoint
+ (DebugEventType)(0), // 13: flow.DebugEventType
+ (*Flow)(nil), // 14: flow.Flow
+ (*Layer4)(nil), // 15: flow.Layer4
+ (*Layer7)(nil), // 16: flow.Layer7
+ (*TraceContext)(nil), // 17: flow.TraceContext
+ (*TraceParent)(nil), // 18: flow.TraceParent
+ (*Endpoint)(nil), // 19: flow.Endpoint
+ (*Workload)(nil), // 20: flow.Workload
+ (*TCP)(nil), // 21: flow.TCP
+ (*IP)(nil), // 22: flow.IP
+ (*Ethernet)(nil), // 23: flow.Ethernet
+ (*TCPFlags)(nil), // 24: flow.TCPFlags
+ (*UDP)(nil), // 25: flow.UDP
+ (*SCTP)(nil), // 26: flow.SCTP
+ (*ICMPv4)(nil), // 27: flow.ICMPv4
+ (*ICMPv6)(nil), // 28: flow.ICMPv6
+ (*EventTypeFilter)(nil), // 29: flow.EventTypeFilter
+ (*CiliumEventType)(nil), // 30: flow.CiliumEventType
+ (*FlowFilter)(nil), // 31: flow.FlowFilter
+ (*DNS)(nil), // 32: flow.DNS
+ (*HTTPHeader)(nil), // 33: flow.HTTPHeader
+ (*HTTP)(nil), // 34: flow.HTTP
+ (*Kafka)(nil), // 35: flow.Kafka
+ (*Service)(nil), // 36: flow.Service
+ (*LostEvent)(nil), // 37: flow.LostEvent
+ (*AgentEvent)(nil), // 38: flow.AgentEvent
+ (*AgentEventUnknown)(nil), // 39: flow.AgentEventUnknown
+ (*TimeNotification)(nil), // 40: flow.TimeNotification
+ (*PolicyUpdateNotification)(nil), // 41: flow.PolicyUpdateNotification
+ (*EndpointRegenNotification)(nil), // 42: flow.EndpointRegenNotification
+ (*EndpointUpdateNotification)(nil), // 43: flow.EndpointUpdateNotification
+ (*IPCacheNotification)(nil), // 44: flow.IPCacheNotification
+ (*ServiceUpsertNotificationAddr)(nil), // 45: flow.ServiceUpsertNotificationAddr
+ (*ServiceUpsertNotification)(nil), // 46: flow.ServiceUpsertNotification
+ (*ServiceDeleteNotification)(nil), // 47: flow.ServiceDeleteNotification
+ (*NetworkInterface)(nil), // 48: flow.NetworkInterface
+ (*DebugEvent)(nil), // 49: flow.DebugEvent
+ (*timestamppb.Timestamp)(nil), // 50: google.protobuf.Timestamp
+ (*wrapperspb.BoolValue)(nil), // 51: google.protobuf.BoolValue
+ (*wrapperspb.Int32Value)(nil), // 52: google.protobuf.Int32Value
+ (*wrapperspb.UInt32Value)(nil), // 53: google.protobuf.UInt32Value
}
var file_flow_flow_proto_depIdxs = []int32{
- 49, // 0: flow.Flow.time:type_name -> google.protobuf.Timestamp
- 4, // 1: flow.Flow.verdict:type_name -> flow.Verdict
- 22, // 2: flow.Flow.ethernet:type_name -> flow.Ethernet
- 21, // 3: flow.Flow.IP:type_name -> flow.IP
- 14, // 4: flow.Flow.l4:type_name -> flow.Layer4
- 18, // 5: flow.Flow.source:type_name -> flow.Endpoint
- 18, // 6: flow.Flow.destination:type_name -> flow.Endpoint
- 0, // 7: flow.Flow.Type:type_name -> flow.FlowType
- 15, // 8: flow.Flow.l7:type_name -> flow.Layer7
- 29, // 9: flow.Flow.event_type:type_name -> flow.CiliumEventType
- 35, // 10: flow.Flow.source_service:type_name -> flow.Service
- 35, // 11: flow.Flow.destination_service:type_name -> flow.Service
- 6, // 12: flow.Flow.traffic_direction:type_name -> flow.TrafficDirection
- 1, // 13: flow.Flow.trace_observation_point:type_name -> flow.TraceObservationPoint
- 5, // 14: flow.Flow.drop_reason_desc:type_name -> flow.DropReason
- 50, // 15: flow.Flow.is_reply:type_name -> google.protobuf.BoolValue
- 7, // 16: flow.Flow.debug_capture_point:type_name -> flow.DebugCapturePoint
- 47, // 17: flow.Flow.interface:type_name -> flow.NetworkInterface
- 16, // 18: flow.Flow.trace_context:type_name -> flow.TraceContext
- 11, // 19: flow.Flow.sock_xlate_point:type_name -> flow.SocketTranslationPoint
- 20, // 20: flow.Layer4.TCP:type_name -> flow.TCP
- 24, // 21: flow.Layer4.UDP:type_name -> flow.UDP
- 26, // 22: flow.Layer4.ICMPv4:type_name -> flow.ICMPv4
- 27, // 23: flow.Layer4.ICMPv6:type_name -> flow.ICMPv6
- 25, // 24: flow.Layer4.SCTP:type_name -> flow.SCTP
- 2, // 25: flow.Layer7.type:type_name -> flow.L7FlowType
- 31, // 26: flow.Layer7.dns:type_name -> flow.DNS
- 33, // 27: flow.Layer7.http:type_name -> flow.HTTP
- 34, // 28: flow.Layer7.kafka:type_name -> flow.Kafka
- 17, // 29: flow.TraceContext.parent:type_name -> flow.TraceParent
- 19, // 30: flow.Endpoint.workloads:type_name -> flow.Workload
- 23, // 31: flow.TCP.flags:type_name -> flow.TCPFlags
- 3, // 32: flow.IP.ipVersion:type_name -> flow.IPVersion
- 19, // 33: flow.FlowFilter.source_workload:type_name -> flow.Workload
- 19, // 34: flow.FlowFilter.destination_workload:type_name -> flow.Workload
- 6, // 35: flow.FlowFilter.traffic_direction:type_name -> flow.TrafficDirection
- 4, // 36: flow.FlowFilter.verdict:type_name -> flow.Verdict
- 28, // 37: flow.FlowFilter.event_type:type_name -> flow.EventTypeFilter
- 23, // 38: flow.FlowFilter.tcp_flags:type_name -> flow.TCPFlags
- 3, // 39: flow.FlowFilter.ip_version:type_name -> flow.IPVersion
- 32, // 40: flow.HTTP.headers:type_name -> flow.HTTPHeader
- 9, // 41: flow.LostEvent.source:type_name -> flow.LostEventSource
- 51, // 42: flow.LostEvent.cpu:type_name -> google.protobuf.Int32Value
- 10, // 43: flow.AgentEvent.type:type_name -> flow.AgentEventType
- 38, // 44: flow.AgentEvent.unknown:type_name -> flow.AgentEventUnknown
- 39, // 45: flow.AgentEvent.agent_start:type_name -> flow.TimeNotification
- 40, // 46: flow.AgentEvent.policy_update:type_name -> flow.PolicyUpdateNotification
- 41, // 47: flow.AgentEvent.endpoint_regenerate:type_name -> flow.EndpointRegenNotification
- 42, // 48: flow.AgentEvent.endpoint_update:type_name -> flow.EndpointUpdateNotification
- 43, // 49: flow.AgentEvent.ipcache_update:type_name -> flow.IPCacheNotification
- 45, // 50: flow.AgentEvent.service_upsert:type_name -> flow.ServiceUpsertNotification
- 46, // 51: flow.AgentEvent.service_delete:type_name -> flow.ServiceDeleteNotification
- 49, // 52: flow.TimeNotification.time:type_name -> google.protobuf.Timestamp
- 52, // 53: flow.IPCacheNotification.old_identity:type_name -> google.protobuf.UInt32Value
- 44, // 54: flow.ServiceUpsertNotification.frontend_address:type_name -> flow.ServiceUpsertNotificationAddr
- 44, // 55: flow.ServiceUpsertNotification.backend_addresses:type_name -> flow.ServiceUpsertNotificationAddr
- 12, // 56: flow.DebugEvent.type:type_name -> flow.DebugEventType
- 18, // 57: flow.DebugEvent.source:type_name -> flow.Endpoint
- 52, // 58: flow.DebugEvent.hash:type_name -> google.protobuf.UInt32Value
- 52, // 59: flow.DebugEvent.arg1:type_name -> google.protobuf.UInt32Value
- 52, // 60: flow.DebugEvent.arg2:type_name -> google.protobuf.UInt32Value
- 52, // 61: flow.DebugEvent.arg3:type_name -> google.protobuf.UInt32Value
- 51, // 62: flow.DebugEvent.cpu:type_name -> google.protobuf.Int32Value
- 63, // [63:63] is the sub-list for method output_type
- 63, // [63:63] is the sub-list for method input_type
- 63, // [63:63] is the sub-list for extension type_name
- 63, // [63:63] is the sub-list for extension extendee
- 0, // [0:63] is the sub-list for field type_name
+ 50, // 0: flow.Flow.time:type_name -> google.protobuf.Timestamp
+ 5, // 1: flow.Flow.verdict:type_name -> flow.Verdict
+ 1, // 2: flow.Flow.auth_type:type_name -> flow.AuthType
+ 23, // 3: flow.Flow.ethernet:type_name -> flow.Ethernet
+ 22, // 4: flow.Flow.IP:type_name -> flow.IP
+ 15, // 5: flow.Flow.l4:type_name -> flow.Layer4
+ 19, // 6: flow.Flow.source:type_name -> flow.Endpoint
+ 19, // 7: flow.Flow.destination:type_name -> flow.Endpoint
+ 0, // 8: flow.Flow.Type:type_name -> flow.FlowType
+ 16, // 9: flow.Flow.l7:type_name -> flow.Layer7
+ 30, // 10: flow.Flow.event_type:type_name -> flow.CiliumEventType
+ 36, // 11: flow.Flow.source_service:type_name -> flow.Service
+ 36, // 12: flow.Flow.destination_service:type_name -> flow.Service
+ 7, // 13: flow.Flow.traffic_direction:type_name -> flow.TrafficDirection
+ 2, // 14: flow.Flow.trace_observation_point:type_name -> flow.TraceObservationPoint
+ 6, // 15: flow.Flow.drop_reason_desc:type_name -> flow.DropReason
+ 51, // 16: flow.Flow.is_reply:type_name -> google.protobuf.BoolValue
+ 8, // 17: flow.Flow.debug_capture_point:type_name -> flow.DebugCapturePoint
+ 48, // 18: flow.Flow.interface:type_name -> flow.NetworkInterface
+ 17, // 19: flow.Flow.trace_context:type_name -> flow.TraceContext
+ 12, // 20: flow.Flow.sock_xlate_point:type_name -> flow.SocketTranslationPoint
+ 21, // 21: flow.Layer4.TCP:type_name -> flow.TCP
+ 25, // 22: flow.Layer4.UDP:type_name -> flow.UDP
+ 27, // 23: flow.Layer4.ICMPv4:type_name -> flow.ICMPv4
+ 28, // 24: flow.Layer4.ICMPv6:type_name -> flow.ICMPv6
+ 26, // 25: flow.Layer4.SCTP:type_name -> flow.SCTP
+ 3, // 26: flow.Layer7.type:type_name -> flow.L7FlowType
+ 32, // 27: flow.Layer7.dns:type_name -> flow.DNS
+ 34, // 28: flow.Layer7.http:type_name -> flow.HTTP
+ 35, // 29: flow.Layer7.kafka:type_name -> flow.Kafka
+ 18, // 30: flow.TraceContext.parent:type_name -> flow.TraceParent
+ 20, // 31: flow.Endpoint.workloads:type_name -> flow.Workload
+ 24, // 32: flow.TCP.flags:type_name -> flow.TCPFlags
+ 4, // 33: flow.IP.ipVersion:type_name -> flow.IPVersion
+ 20, // 34: flow.FlowFilter.source_workload:type_name -> flow.Workload
+ 20, // 35: flow.FlowFilter.destination_workload:type_name -> flow.Workload
+ 7, // 36: flow.FlowFilter.traffic_direction:type_name -> flow.TrafficDirection
+ 5, // 37: flow.FlowFilter.verdict:type_name -> flow.Verdict
+ 29, // 38: flow.FlowFilter.event_type:type_name -> flow.EventTypeFilter
+ 24, // 39: flow.FlowFilter.tcp_flags:type_name -> flow.TCPFlags
+ 4, // 40: flow.FlowFilter.ip_version:type_name -> flow.IPVersion
+ 33, // 41: flow.HTTP.headers:type_name -> flow.HTTPHeader
+ 10, // 42: flow.LostEvent.source:type_name -> flow.LostEventSource
+ 52, // 43: flow.LostEvent.cpu:type_name -> google.protobuf.Int32Value
+ 11, // 44: flow.AgentEvent.type:type_name -> flow.AgentEventType
+ 39, // 45: flow.AgentEvent.unknown:type_name -> flow.AgentEventUnknown
+ 40, // 46: flow.AgentEvent.agent_start:type_name -> flow.TimeNotification
+ 41, // 47: flow.AgentEvent.policy_update:type_name -> flow.PolicyUpdateNotification
+ 42, // 48: flow.AgentEvent.endpoint_regenerate:type_name -> flow.EndpointRegenNotification
+ 43, // 49: flow.AgentEvent.endpoint_update:type_name -> flow.EndpointUpdateNotification
+ 44, // 50: flow.AgentEvent.ipcache_update:type_name -> flow.IPCacheNotification
+ 46, // 51: flow.AgentEvent.service_upsert:type_name -> flow.ServiceUpsertNotification
+ 47, // 52: flow.AgentEvent.service_delete:type_name -> flow.ServiceDeleteNotification
+ 50, // 53: flow.TimeNotification.time:type_name -> google.protobuf.Timestamp
+ 53, // 54: flow.IPCacheNotification.old_identity:type_name -> google.protobuf.UInt32Value
+ 45, // 55: flow.ServiceUpsertNotification.frontend_address:type_name -> flow.ServiceUpsertNotificationAddr
+ 45, // 56: flow.ServiceUpsertNotification.backend_addresses:type_name -> flow.ServiceUpsertNotificationAddr
+ 13, // 57: flow.DebugEvent.type:type_name -> flow.DebugEventType
+ 19, // 58: flow.DebugEvent.source:type_name -> flow.Endpoint
+ 53, // 59: flow.DebugEvent.hash:type_name -> google.protobuf.UInt32Value
+ 53, // 60: flow.DebugEvent.arg1:type_name -> google.protobuf.UInt32Value
+ 53, // 61: flow.DebugEvent.arg2:type_name -> google.protobuf.UInt32Value
+ 53, // 62: flow.DebugEvent.arg3:type_name -> google.protobuf.UInt32Value
+ 52, // 63: flow.DebugEvent.cpu:type_name -> google.protobuf.Int32Value
+ 64, // [64:64] is the sub-list for method output_type
+ 64, // [64:64] is the sub-list for method input_type
+ 64, // [64:64] is the sub-list for extension type_name
+ 64, // [64:64] is the sub-list for extension extendee
+ 0, // [0:64] is the sub-list for field type_name
}
func init() { file_flow_flow_proto_init() }
@@ -5836,7 +5908,7 @@ func file_flow_flow_proto_init() {
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_flow_flow_proto_rawDesc,
- NumEnums: 13,
+ NumEnums: 14,
NumMessages: 36,
NumExtensions: 0,
NumServices: 0,
diff --git a/vendor/github.com/cilium/cilium/api/v1/flow/flow.proto b/vendor/github.com/cilium/cilium/api/v1/flow/flow.proto
index c8d6a44e4a..e831656a02 100644
--- a/vendor/github.com/cilium/cilium/api/v1/flow/flow.proto
+++ b/vendor/github.com/cilium/cilium/api/v1/flow/flow.proto
@@ -21,6 +21,10 @@ message Flow {
// deprecated in favor of drop_reason_desc.
uint32 drop_reason = 3 [deprecated=true];
+ // auth_type is the authentication type specified for the flow in Cilium Network Policy.
+ // Only set on policy verdict events.
+ AuthType auth_type = 35;
+
// l2
Ethernet ethernet = 4;
// l3
@@ -119,6 +123,14 @@ enum FlowType {
SOCK = 3;
}
+// These types correspond to definitions in pkg/policy/l4.go
+enum AuthType {
+ NONE = 0;
+ NULL = 1;
+ MTLS_SPIFFE = 2;
+ ALWAYS_FAIL = 3;
+}
+
enum TraceObservationPoint {
// Cilium treats 0 as TO_LXC, but its's something we should work to remove.
// This is intentionally set as unknown, so proto API can guarantee the
diff --git a/vendor/github.com/cilium/cilium/api/v1/health/client/connectivity/put_status_probe_responses.go b/vendor/github.com/cilium/cilium/api/v1/health/client/connectivity/put_status_probe_responses.go
index b69a43b3c5..68d6dadbd3 100644
--- a/vendor/github.com/cilium/cilium/api/v1/health/client/connectivity/put_status_probe_responses.go
+++ b/vendor/github.com/cilium/cilium/api/v1/health/client/connectivity/put_status_probe_responses.go
@@ -32,6 +32,12 @@ func (o *PutStatusProbeReader) ReadResponse(response runtime.ClientResponse, con
return nil, err
}
return result, nil
+ case 403:
+ result := NewPutStatusProbeForbidden()
+ if err := result.readResponse(response, consumer, o.formats); err != nil {
+ return nil, err
+ }
+ return nil, result
case 500:
result := NewPutStatusProbeFailed()
if err := result.readResponse(response, consumer, o.formats); err != nil {
@@ -106,6 +112,57 @@ func (o *PutStatusProbeOK) readResponse(response runtime.ClientResponse, consume
return nil
}
+// NewPutStatusProbeForbidden creates a PutStatusProbeForbidden with default headers values
+func NewPutStatusProbeForbidden() *PutStatusProbeForbidden {
+ return &PutStatusProbeForbidden{}
+}
+
+/*
+PutStatusProbeForbidden describes a response with status code 403, with default header values.
+
+Forbidden
+*/
+type PutStatusProbeForbidden struct {
+}
+
+// IsSuccess returns true when this put status probe forbidden response has a 2xx status code
+func (o *PutStatusProbeForbidden) IsSuccess() bool {
+ return false
+}
+
+// IsRedirect returns true when this put status probe forbidden response has a 3xx status code
+func (o *PutStatusProbeForbidden) IsRedirect() bool {
+ return false
+}
+
+// IsClientError returns true when this put status probe forbidden response has a 4xx status code
+func (o *PutStatusProbeForbidden) IsClientError() bool {
+ return true
+}
+
+// IsServerError returns true when this put status probe forbidden response has a 5xx status code
+func (o *PutStatusProbeForbidden) IsServerError() bool {
+ return false
+}
+
+// IsCode returns true when this put status probe forbidden response a status code equal to that given
+func (o *PutStatusProbeForbidden) IsCode(code int) bool {
+ return code == 403
+}
+
+func (o *PutStatusProbeForbidden) Error() string {
+ return fmt.Sprintf("[PUT /status/probe][%d] putStatusProbeForbidden ", 403)
+}
+
+func (o *PutStatusProbeForbidden) String() string {
+ return fmt.Sprintf("[PUT /status/probe][%d] putStatusProbeForbidden ", 403)
+}
+
+func (o *PutStatusProbeForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+
+ return nil
+}
+
// NewPutStatusProbeFailed creates a PutStatusProbeFailed with default headers values
func NewPutStatusProbeFailed() *PutStatusProbeFailed {
return &PutStatusProbeFailed{}
diff --git a/vendor/github.com/cilium/cilium/api/v1/models/address_pair.go b/vendor/github.com/cilium/cilium/api/v1/models/address_pair.go
index 4b20ef5157..302dce71c1 100644
--- a/vendor/github.com/cilium/cilium/api/v1/models/address_pair.go
+++ b/vendor/github.com/cilium/cilium/api/v1/models/address_pair.go
@@ -26,11 +26,17 @@ type AddressPair struct {
// UUID of IPv4 expiration timer
IPV4ExpirationUUID string `json:"ipv4-expiration-uuid,omitempty"`
+ // IPAM pool from which this IPv4 address was allocated
+ IPV4PoolName string `json:"ipv4-pool-name,omitempty"`
+
// IPv6 address
IPV6 string `json:"ipv6,omitempty"`
// UUID of IPv6 expiration timer
IPV6ExpirationUUID string `json:"ipv6-expiration-uuid,omitempty"`
+
+ // IPAM pool from which this IPv6 address was allocated
+ IPV6PoolName string `json:"ipv6-pool-name,omitempty"`
}
// Validate validates this address pair
diff --git a/vendor/github.com/cilium/cilium/api/v1/models/bgp_peer.go b/vendor/github.com/cilium/cilium/api/v1/models/bgp_peer.go
index d61fb6fe26..bfd341c46c 100644
--- a/vendor/github.com/cilium/cilium/api/v1/models/bgp_peer.go
+++ b/vendor/github.com/cilium/cilium/api/v1/models/bgp_peer.go
@@ -24,6 +24,29 @@ import (
// swagger:model BgpPeer
type BgpPeer struct {
+ // Applied initial value for the BGP HoldTimer (RFC 4271, Section 4.2) in seconds.
+ // The applied value holds the value that is in effect on the current BGP session.
+ //
+ AppliedHoldTimeSeconds int64 `json:"applied-hold-time-seconds,omitempty"`
+
+ // Applied initial value for the BGP KeepaliveTimer (RFC 4271, Section 8) in seconds.
+ // The applied value holds the value that is in effect on the current BGP session.
+ //
+ AppliedKeepAliveTimeSeconds int64 `json:"applied-keep-alive-time-seconds,omitempty"`
+
+ // Configured initial value for the BGP HoldTimer (RFC 4271, Section 4.2) in seconds.
+ // The configured value will be used for negotiation with the peer during the BGP session establishment.
+ //
+ ConfiguredHoldTimeSeconds int64 `json:"configured-hold-time-seconds,omitempty"`
+
+ // Configured initial value for the BGP KeepaliveTimer (RFC 4271, Section 8) in seconds.
+ // The applied value may be different than the configured value, as it depends on the negotiated hold time interval.
+ //
+ ConfiguredKeepAliveTimeSeconds int64 `json:"configured-keep-alive-time-seconds,omitempty"`
+
+ // Initial value for the BGP ConnectRetryTimer (RFC 4271, Section 8) in seconds
+ ConnectRetryTimeSeconds int64 `json:"connect-retry-time-seconds,omitempty"`
+
// BGP peer address family state
Families []*BgpPeerFamilies `json:"families"`
diff --git a/vendor/github.com/cilium/cilium/api/v1/models/proxy_status.go b/vendor/github.com/cilium/cilium/api/v1/models/proxy_status.go
index 3597959d96..d3283687d1 100644
--- a/vendor/github.com/cilium/cilium/api/v1/models/proxy_status.go
+++ b/vendor/github.com/cilium/cilium/api/v1/models/proxy_status.go
@@ -10,11 +10,13 @@ package models
import (
"context"
+ "encoding/json"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
+ "github.com/go-openapi/validate"
)
// ProxyStatus Status of proxy
@@ -24,6 +26,10 @@ import (
// swagger:model ProxyStatus
type ProxyStatus struct {
+ // Deployment mode of Envoy L7 proxy
+ // Enum: [embedded external]
+ EnvoyDeploymentMode string `json:"envoy-deployment-mode,omitempty"`
+
// IP address that the proxy listens on
IP string `json:"ip,omitempty"`
@@ -44,6 +50,10 @@ type ProxyStatus struct {
func (m *ProxyStatus) Validate(formats strfmt.Registry) error {
var res []error
+ if err := m.validateEnvoyDeploymentMode(formats); err != nil {
+ res = append(res, err)
+ }
+
if err := m.validateRedirects(formats); err != nil {
res = append(res, err)
}
@@ -54,6 +64,48 @@ func (m *ProxyStatus) Validate(formats strfmt.Registry) error {
return nil
}
+var proxyStatusTypeEnvoyDeploymentModePropEnum []interface{}
+
+func init() {
+ var res []string
+ if err := json.Unmarshal([]byte(`["embedded","external"]`), &res); err != nil {
+ panic(err)
+ }
+ for _, v := range res {
+ proxyStatusTypeEnvoyDeploymentModePropEnum = append(proxyStatusTypeEnvoyDeploymentModePropEnum, v)
+ }
+}
+
+const (
+
+ // ProxyStatusEnvoyDeploymentModeEmbedded captures enum value "embedded"
+ ProxyStatusEnvoyDeploymentModeEmbedded string = "embedded"
+
+ // ProxyStatusEnvoyDeploymentModeExternal captures enum value "external"
+ ProxyStatusEnvoyDeploymentModeExternal string = "external"
+)
+
+// prop value enum
+func (m *ProxyStatus) validateEnvoyDeploymentModeEnum(path, location string, value string) error {
+ if err := validate.EnumCase(path, location, value, proxyStatusTypeEnvoyDeploymentModePropEnum, true); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (m *ProxyStatus) validateEnvoyDeploymentMode(formats strfmt.Registry) error {
+ if swag.IsZero(m.EnvoyDeploymentMode) { // not required
+ return nil
+ }
+
+ // value enum
+ if err := m.validateEnvoyDeploymentModeEnum("envoy-deployment-mode", "body", m.EnvoyDeploymentMode); err != nil {
+ return err
+ }
+
+ return nil
+}
+
func (m *ProxyStatus) validateRedirects(formats strfmt.Registry) error {
if swag.IsZero(m.Redirects) { // not required
return nil
diff --git a/vendor/github.com/cilium/cilium/api/v1/observer/README.md b/vendor/github.com/cilium/cilium/api/v1/observer/README.md
index 582b2699c9..28ba8b04d2 100644
--- a/vendor/github.com/cilium/cilium/api/v1/observer/README.md
+++ b/vendor/github.com/cilium/cilium/api/v1/observer/README.md
@@ -10,6 +10,7 @@
- [GetDebugEventsRequest](#observer-GetDebugEventsRequest)
- [GetDebugEventsResponse](#observer-GetDebugEventsResponse)
- [GetFlowsRequest](#observer-GetFlowsRequest)
+ - [GetFlowsRequest.Experimental](#observer-GetFlowsRequest-Experimental)
- [GetFlowsResponse](#observer-GetFlowsResponse)
- [GetNodesRequest](#observer-GetNodesRequest)
- [GetNodesResponse](#observer-GetNodesResponse)
@@ -140,6 +141,23 @@ GetDebugEventsResponse contains a Cilium datapath debug events.
| whitelist | [flow.FlowFilter](#flow-FlowFilter) | repeated | whitelist defines a list of filters which have to match for a flow to be included in the result. If multiple whitelist filters are specified, only one of them has to match for a flow to be included. The whitelist and blacklist can both be specified. In such cases, the set of the returned flows is the set difference `whitelist - blacklist`. In other words, the result will contain all flows matched by the whitelist that are not also simultaneously matched by the blacklist. |
| since | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Since this time for returned flows. Incompatible with `number`. |
| until | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Until this time for returned flows. Incompatible with `number`. |
+| experimental | [GetFlowsRequest.Experimental](#observer-GetFlowsRequest-Experimental) | | |
+
+
+
+
+
+
+
+
+### GetFlowsRequest.Experimental
+Experimental contains fields that are not stable yet. Support for
+experimental features is always optional and subject to change.
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| field_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | FieldMask allows clients to limit flow's fields that will be returned. For example, {paths: ["source.id", "destination.id"]} will return flows with only these two fields set. |
diff --git a/vendor/github.com/cilium/cilium/api/v1/observer/observer.pb.go b/vendor/github.com/cilium/cilium/api/v1/observer/observer.pb.go
index 2fdcd34979..3561368422 100644
--- a/vendor/github.com/cilium/cilium/api/v1/observer/observer.pb.go
+++ b/vendor/github.com/cilium/cilium/api/v1/observer/observer.pb.go
@@ -14,6 +14,7 @@ import (
relay "github.com/cilium/cilium/api/v1/relay"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
reflect "reflect"
@@ -39,6 +40,16 @@ const FlowType_SOCK = flow.FlowType_SOCK
var FlowType_name = flow.FlowType_name
var FlowType_value = flow.FlowType_value
+type AuthType = flow.AuthType
+
+const AuthType_NONE = flow.AuthType_NONE
+const AuthType_NULL = flow.AuthType_NULL
+const AuthType_MTLS_SPIFFE = flow.AuthType_MTLS_SPIFFE
+const AuthType_ALWAYS_FAIL = flow.AuthType_ALWAYS_FAIL
+
+var AuthType_name = flow.AuthType_name
+var AuthType_value = flow.AuthType_value
+
type TraceObservationPoint = flow.TraceObservationPoint
const TraceObservationPoint_UNKNOWN_POINT = flow.TraceObservationPoint_UNKNOWN_POINT
@@ -548,7 +559,8 @@ type GetFlowsRequest struct {
// Since this time for returned flows. Incompatible with `number`.
Since *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=since,proto3" json:"since,omitempty"`
// Until this time for returned flows. Incompatible with `number`.
- Until *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=until,proto3" json:"until,omitempty"`
+ Until *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=until,proto3" json:"until,omitempty"`
+ Experimental *GetFlowsRequest_Experimental `protobuf:"bytes,999,opt,name=experimental,proto3" json:"experimental,omitempty"`
}
func (x *GetFlowsRequest) Reset() {
@@ -632,6 +644,13 @@ func (x *GetFlowsRequest) GetUntil() *timestamppb.Timestamp {
return nil
}
+func (x *GetFlowsRequest) GetExperimental() *GetFlowsRequest_Experimental {
+ if x != nil {
+ return x.Experimental
+ }
+ return nil
+}
+
// GetFlowsResponse contains either a flow or a protocol message.
type GetFlowsResponse struct {
state protoimpl.MessageState
@@ -1475,6 +1494,58 @@ func (*ExportEvent_AgentEvent) isExportEvent_ResponseTypes() {}
func (*ExportEvent_DebugEvent) isExportEvent_ResponseTypes() {}
+// Experimental contains fields that are not stable yet. Support for
+// experimental features is always optional and subject to change.
+type GetFlowsRequest_Experimental struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // FieldMask allows clients to limit flow's fields that will be returned.
+ // For example, {paths: ["source.id", "destination.id"]} will return flows
+ // with only these two fields set.
+ FieldMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
+}
+
+func (x *GetFlowsRequest_Experimental) Reset() {
+ *x = GetFlowsRequest_Experimental{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_observer_observer_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetFlowsRequest_Experimental) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetFlowsRequest_Experimental) ProtoMessage() {}
+
+func (x *GetFlowsRequest_Experimental) ProtoReflect() protoreflect.Message {
+ mi := &file_observer_observer_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetFlowsRequest_Experimental.ProtoReflect.Descriptor instead.
+func (*GetFlowsRequest_Experimental) Descriptor() ([]byte, []int) {
+ return file_observer_observer_proto_rawDescGZIP(), []int{2, 0}
+}
+
+func (x *GetFlowsRequest_Experimental) GetFieldMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.FieldMask
+ }
+ return nil
+}
+
var File_observer_observer_proto protoreflect.FileDescriptor
var file_observer_observer_proto_rawDesc = []byte{
@@ -1484,190 +1555,202 @@ var file_observer_observer_proto_rawDesc = []byte{
0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x72, 0x65, 0x6c,
- 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
- 0xf3, 0x02, 0x0a, 0x14, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x75, 0x6d,
- 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x6c, 0x6f,
- 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x46, 0x6c, 0x6f,
- 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x65, 0x65, 0x6e, 0x46, 0x6c, 0x6f, 0x77,
- 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x12, 0x4c,
- 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f,
- 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49,
- 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x43, 0x6f,
- 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x15,
- 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f,
- 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49,
- 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x55, 0x6e,
- 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b,
- 0x0a, 0x11, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f,
- 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x61, 0x76, 0x61,
- 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76,
- 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65,
- 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa1, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f,
- 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d,
- 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65,
- 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f,
- 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x12,
- 0x2e, 0x0a, 0x09, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69,
- 0x6c, 0x74, 0x65, 0x72, 0x52, 0x09, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x12,
- 0x2e, 0x0a, 0x09, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69,
- 0x6c, 0x74, 0x65, 0x72, 0x52, 0x09, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12,
- 0x30, 0x0a, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x69, 0x6e, 0x63,
- 0x65, 0x12, 0x30, 0x0a, 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x75, 0x6e,
- 0x74, 0x69, 0x6c, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x84, 0x02, 0x0a, 0x10, 0x47, 0x65,
- 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20,
- 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66,
- 0x6c, 0x6f, 0x77, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77,
- 0x12, 0x39, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4e, 0x6f,
- 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52,
- 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x6c,
- 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e,
- 0x74, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12,
- 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0xe8, 0x07, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a,
- 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
- 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10,
- 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65,
- 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75,
- 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62,
- 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x6c,
- 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77,
- 0x12, 0x30, 0x0a, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x69, 0x6e,
- 0x63, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x75,
- 0x6e, 0x74, 0x69, 0x6c, 0x22, 0x9a, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e,
- 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x31, 0x0a, 0x0b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x67, 0x65, 0x6e,
- 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65,
- 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0xe8, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65,
- 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d,
- 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76,
- 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x66, 0x6c, 0x6f,
+ 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x72,
+ 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x22, 0xf3, 0x02, 0x0a, 0x14, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75,
+ 0x6d, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e,
+ 0x75, 0x6d, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x66,
+ 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x46,
+ 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x66, 0x6c, 0x6f,
+ 0x77, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x65, 0x65, 0x6e, 0x46, 0x6c,
+ 0x6f, 0x77, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6e, 0x73,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x4e, 0x73,
+ 0x12, 0x4c, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65,
+ 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x6e, 0x75, 0x6d,
+ 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x50,
+ 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c,
+ 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x6e, 0x75, 0x6d,
+ 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73,
+ 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f,
+ 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x61,
+ 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x18, 0x0a,
+ 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x03, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46,
+ 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e,
0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01,
0x28, 0x08, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c,
- 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f,
- 0x77, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
+ 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f,
+ 0x77, 0x12, 0x2e, 0x0a, 0x09, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x46, 0x6c, 0x6f, 0x77,
+ 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x09, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73,
+ 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x46, 0x6c, 0x6f, 0x77,
+ 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x09, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73,
+ 0x74, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x69,
0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05,
- 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x22, 0x9a, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62,
- 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x62,
- 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76,
- 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d,
- 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69,
- 0x6d, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x38, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x6e, 0x6f, 0x64,
- 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22,
- 0x8d, 0x02, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
- 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76,
- 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
- 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
- 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32,
- 0x10, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74,
- 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x54, 0x4c, 0x53, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x70, 0x74,
- 0x69, 0x6d, 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x75, 0x70,
- 0x74, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x6c,
- 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x6c,
- 0x6f, 0x77, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x46, 0x6c, 0x6f, 0x77, 0x73,
- 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x09,
- 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x65, 0x65, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x22,
- 0x40, 0x0a, 0x03, 0x54, 0x4c, 0x53, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
- 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
- 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d,
- 0x65, 0x22, 0xe9, 0x02, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x76, 0x65, 0x6e,
- 0x74, 0x12, 0x20, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x0a, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x04, 0x66,
- 0x6c, 0x6f, 0x77, 0x12, 0x39, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x79,
- 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74,
- 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32,
- 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x6f, 0x73, 0x74, 0x45,
- 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e,
- 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e,
- 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41,
- 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x67, 0x65,
- 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67,
- 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66,
- 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00,
- 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09,
+ 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x12, 0x4b, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d,
+ 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f,
+ 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65,
+ 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74,
+ 0x61, 0x6c, 0x1a, 0x49, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74,
+ 0x61, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61,
+ 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x4a, 0x04, 0x08,
+ 0x02, 0x10, 0x03, 0x22, 0x84, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x46, 0x6c,
+ 0x6f, 0x77, 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x39, 0x0a, 0x0b, 0x6e, 0x6f,
+ 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x16, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x6f,
+ 0x77, 0x2e, 0x4c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x6c,
+ 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x64,
+ 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
+ 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18,
+ 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x47,
+ 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05,
+ 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x69, 0x72,
+ 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x69,
+ 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x05,
+ 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x22, 0x9a,
+ 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
+ 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x52, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09,
0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x69,
0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
- 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x72,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x32, 0x99, 0x03,
- 0x0a, 0x08, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x08, 0x47, 0x65,
- 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x19, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x1a, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74,
- 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30,
- 0x01, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65,
- 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47,
- 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65,
- 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x6f,
- 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67,
- 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e,
- 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75,
- 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x30, 0x01, 0x12, 0x43, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12,
- 0x19, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f,
- 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6f, 0x62, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x69, 0x74,
- 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f, 0x63,
- 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x62, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x02, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x15,
+ 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a,
+ 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x69,
+ 0x72, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x30, 0x0a, 0x05, 0x73,
+ 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a,
+ 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x22,
+ 0x9a, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65,
+ 0x62, 0x75, 0x67, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a,
+ 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x74,
+ 0x69, 0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x11, 0x0a, 0x0f,
+ 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
+ 0x38, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4e, 0x6f,
+ 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x8d, 0x02, 0x0a, 0x04, 0x4e, 0x6f,
+ 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x72, 0x65, 0x6c, 0x61,
+ 0x79, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x0d, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x4c, 0x53, 0x52, 0x03,
+ 0x74, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6e, 0x73,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x4e, 0x73,
+ 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1b, 0x0a,
+ 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04,
+ 0x52, 0x08, 0x6d, 0x61, 0x78, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65,
+ 0x65, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09,
+ 0x73, 0x65, 0x65, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x40, 0x0a, 0x03, 0x54, 0x4c, 0x53,
+ 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xe9, 0x02, 0x0a, 0x0b,
+ 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x66,
+ 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x6f, 0x77,
+ 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x39, 0x0a,
+ 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x6f,
+ 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x74,
+ 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
+ 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00,
+ 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0b,
+ 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x65,
+ 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75,
+ 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65,
+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
+ 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x32, 0x99, 0x03, 0x0a, 0x08, 0x4f, 0x62, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73,
+ 0x12, 0x19, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x46,
+ 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6f, 0x62,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x57, 0x0a, 0x0e, 0x47,
+ 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e,
+ 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e,
+ 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20,
+ 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65,
+ 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x30, 0x01, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x43, 0x0a,
+ 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x19, 0x2e, 0x6f, 0x62, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x12, 0x1d, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50,
+ 0x03, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1682,74 +1765,78 @@ func file_observer_observer_proto_rawDescGZIP() []byte {
return file_observer_observer_proto_rawDescData
}
-var file_observer_observer_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
+var file_observer_observer_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_observer_observer_proto_goTypes = []interface{}{
- (*ServerStatusRequest)(nil), // 0: observer.ServerStatusRequest
- (*ServerStatusResponse)(nil), // 1: observer.ServerStatusResponse
- (*GetFlowsRequest)(nil), // 2: observer.GetFlowsRequest
- (*GetFlowsResponse)(nil), // 3: observer.GetFlowsResponse
- (*GetAgentEventsRequest)(nil), // 4: observer.GetAgentEventsRequest
- (*GetAgentEventsResponse)(nil), // 5: observer.GetAgentEventsResponse
- (*GetDebugEventsRequest)(nil), // 6: observer.GetDebugEventsRequest
- (*GetDebugEventsResponse)(nil), // 7: observer.GetDebugEventsResponse
- (*GetNodesRequest)(nil), // 8: observer.GetNodesRequest
- (*GetNodesResponse)(nil), // 9: observer.GetNodesResponse
- (*Node)(nil), // 10: observer.Node
- (*TLS)(nil), // 11: observer.TLS
- (*ExportEvent)(nil), // 12: observer.ExportEvent
- (*wrapperspb.UInt32Value)(nil), // 13: google.protobuf.UInt32Value
- (*flow.FlowFilter)(nil), // 14: flow.FlowFilter
- (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp
- (*flow.Flow)(nil), // 16: flow.Flow
- (*relay.NodeStatusEvent)(nil), // 17: relay.NodeStatusEvent
- (*flow.LostEvent)(nil), // 18: flow.LostEvent
- (*flow.AgentEvent)(nil), // 19: flow.AgentEvent
- (*flow.DebugEvent)(nil), // 20: flow.DebugEvent
- (relay.NodeState)(0), // 21: relay.NodeState
+ (*ServerStatusRequest)(nil), // 0: observer.ServerStatusRequest
+ (*ServerStatusResponse)(nil), // 1: observer.ServerStatusResponse
+ (*GetFlowsRequest)(nil), // 2: observer.GetFlowsRequest
+ (*GetFlowsResponse)(nil), // 3: observer.GetFlowsResponse
+ (*GetAgentEventsRequest)(nil), // 4: observer.GetAgentEventsRequest
+ (*GetAgentEventsResponse)(nil), // 5: observer.GetAgentEventsResponse
+ (*GetDebugEventsRequest)(nil), // 6: observer.GetDebugEventsRequest
+ (*GetDebugEventsResponse)(nil), // 7: observer.GetDebugEventsResponse
+ (*GetNodesRequest)(nil), // 8: observer.GetNodesRequest
+ (*GetNodesResponse)(nil), // 9: observer.GetNodesResponse
+ (*Node)(nil), // 10: observer.Node
+ (*TLS)(nil), // 11: observer.TLS
+ (*ExportEvent)(nil), // 12: observer.ExportEvent
+ (*GetFlowsRequest_Experimental)(nil), // 13: observer.GetFlowsRequest.Experimental
+ (*wrapperspb.UInt32Value)(nil), // 14: google.protobuf.UInt32Value
+ (*flow.FlowFilter)(nil), // 15: flow.FlowFilter
+ (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp
+ (*flow.Flow)(nil), // 17: flow.Flow
+ (*relay.NodeStatusEvent)(nil), // 18: relay.NodeStatusEvent
+ (*flow.LostEvent)(nil), // 19: flow.LostEvent
+ (*flow.AgentEvent)(nil), // 20: flow.AgentEvent
+ (*flow.DebugEvent)(nil), // 21: flow.DebugEvent
+ (relay.NodeState)(0), // 22: relay.NodeState
+ (*fieldmaskpb.FieldMask)(nil), // 23: google.protobuf.FieldMask
}
var file_observer_observer_proto_depIdxs = []int32{
- 13, // 0: observer.ServerStatusResponse.num_connected_nodes:type_name -> google.protobuf.UInt32Value
- 13, // 1: observer.ServerStatusResponse.num_unavailable_nodes:type_name -> google.protobuf.UInt32Value
- 14, // 2: observer.GetFlowsRequest.blacklist:type_name -> flow.FlowFilter
- 14, // 3: observer.GetFlowsRequest.whitelist:type_name -> flow.FlowFilter
- 15, // 4: observer.GetFlowsRequest.since:type_name -> google.protobuf.Timestamp
- 15, // 5: observer.GetFlowsRequest.until:type_name -> google.protobuf.Timestamp
- 16, // 6: observer.GetFlowsResponse.flow:type_name -> flow.Flow
- 17, // 7: observer.GetFlowsResponse.node_status:type_name -> relay.NodeStatusEvent
- 18, // 8: observer.GetFlowsResponse.lost_events:type_name -> flow.LostEvent
- 15, // 9: observer.GetFlowsResponse.time:type_name -> google.protobuf.Timestamp
- 15, // 10: observer.GetAgentEventsRequest.since:type_name -> google.protobuf.Timestamp
- 15, // 11: observer.GetAgentEventsRequest.until:type_name -> google.protobuf.Timestamp
- 19, // 12: observer.GetAgentEventsResponse.agent_event:type_name -> flow.AgentEvent
- 15, // 13: observer.GetAgentEventsResponse.time:type_name -> google.protobuf.Timestamp
- 15, // 14: observer.GetDebugEventsRequest.since:type_name -> google.protobuf.Timestamp
- 15, // 15: observer.GetDebugEventsRequest.until:type_name -> google.protobuf.Timestamp
- 20, // 16: observer.GetDebugEventsResponse.debug_event:type_name -> flow.DebugEvent
- 15, // 17: observer.GetDebugEventsResponse.time:type_name -> google.protobuf.Timestamp
- 10, // 18: observer.GetNodesResponse.nodes:type_name -> observer.Node
- 21, // 19: observer.Node.state:type_name -> relay.NodeState
- 11, // 20: observer.Node.tls:type_name -> observer.TLS
- 16, // 21: observer.ExportEvent.flow:type_name -> flow.Flow
- 17, // 22: observer.ExportEvent.node_status:type_name -> relay.NodeStatusEvent
- 18, // 23: observer.ExportEvent.lost_events:type_name -> flow.LostEvent
- 19, // 24: observer.ExportEvent.agent_event:type_name -> flow.AgentEvent
- 20, // 25: observer.ExportEvent.debug_event:type_name -> flow.DebugEvent
- 15, // 26: observer.ExportEvent.time:type_name -> google.protobuf.Timestamp
- 2, // 27: observer.Observer.GetFlows:input_type -> observer.GetFlowsRequest
- 4, // 28: observer.Observer.GetAgentEvents:input_type -> observer.GetAgentEventsRequest
- 6, // 29: observer.Observer.GetDebugEvents:input_type -> observer.GetDebugEventsRequest
- 8, // 30: observer.Observer.GetNodes:input_type -> observer.GetNodesRequest
- 0, // 31: observer.Observer.ServerStatus:input_type -> observer.ServerStatusRequest
- 3, // 32: observer.Observer.GetFlows:output_type -> observer.GetFlowsResponse
- 5, // 33: observer.Observer.GetAgentEvents:output_type -> observer.GetAgentEventsResponse
- 7, // 34: observer.Observer.GetDebugEvents:output_type -> observer.GetDebugEventsResponse
- 9, // 35: observer.Observer.GetNodes:output_type -> observer.GetNodesResponse
- 1, // 36: observer.Observer.ServerStatus:output_type -> observer.ServerStatusResponse
- 32, // [32:37] is the sub-list for method output_type
- 27, // [27:32] is the sub-list for method input_type
- 27, // [27:27] is the sub-list for extension type_name
- 27, // [27:27] is the sub-list for extension extendee
- 0, // [0:27] is the sub-list for field type_name
+ 14, // 0: observer.ServerStatusResponse.num_connected_nodes:type_name -> google.protobuf.UInt32Value
+ 14, // 1: observer.ServerStatusResponse.num_unavailable_nodes:type_name -> google.protobuf.UInt32Value
+ 15, // 2: observer.GetFlowsRequest.blacklist:type_name -> flow.FlowFilter
+ 15, // 3: observer.GetFlowsRequest.whitelist:type_name -> flow.FlowFilter
+ 16, // 4: observer.GetFlowsRequest.since:type_name -> google.protobuf.Timestamp
+ 16, // 5: observer.GetFlowsRequest.until:type_name -> google.protobuf.Timestamp
+ 13, // 6: observer.GetFlowsRequest.experimental:type_name -> observer.GetFlowsRequest.Experimental
+ 17, // 7: observer.GetFlowsResponse.flow:type_name -> flow.Flow
+ 18, // 8: observer.GetFlowsResponse.node_status:type_name -> relay.NodeStatusEvent
+ 19, // 9: observer.GetFlowsResponse.lost_events:type_name -> flow.LostEvent
+ 16, // 10: observer.GetFlowsResponse.time:type_name -> google.protobuf.Timestamp
+ 16, // 11: observer.GetAgentEventsRequest.since:type_name -> google.protobuf.Timestamp
+ 16, // 12: observer.GetAgentEventsRequest.until:type_name -> google.protobuf.Timestamp
+ 20, // 13: observer.GetAgentEventsResponse.agent_event:type_name -> flow.AgentEvent
+ 16, // 14: observer.GetAgentEventsResponse.time:type_name -> google.protobuf.Timestamp
+ 16, // 15: observer.GetDebugEventsRequest.since:type_name -> google.protobuf.Timestamp
+ 16, // 16: observer.GetDebugEventsRequest.until:type_name -> google.protobuf.Timestamp
+ 21, // 17: observer.GetDebugEventsResponse.debug_event:type_name -> flow.DebugEvent
+ 16, // 18: observer.GetDebugEventsResponse.time:type_name -> google.protobuf.Timestamp
+ 10, // 19: observer.GetNodesResponse.nodes:type_name -> observer.Node
+ 22, // 20: observer.Node.state:type_name -> relay.NodeState
+ 11, // 21: observer.Node.tls:type_name -> observer.TLS
+ 17, // 22: observer.ExportEvent.flow:type_name -> flow.Flow
+ 18, // 23: observer.ExportEvent.node_status:type_name -> relay.NodeStatusEvent
+ 19, // 24: observer.ExportEvent.lost_events:type_name -> flow.LostEvent
+ 20, // 25: observer.ExportEvent.agent_event:type_name -> flow.AgentEvent
+ 21, // 26: observer.ExportEvent.debug_event:type_name -> flow.DebugEvent
+ 16, // 27: observer.ExportEvent.time:type_name -> google.protobuf.Timestamp
+ 23, // 28: observer.GetFlowsRequest.Experimental.field_mask:type_name -> google.protobuf.FieldMask
+ 2, // 29: observer.Observer.GetFlows:input_type -> observer.GetFlowsRequest
+ 4, // 30: observer.Observer.GetAgentEvents:input_type -> observer.GetAgentEventsRequest
+ 6, // 31: observer.Observer.GetDebugEvents:input_type -> observer.GetDebugEventsRequest
+ 8, // 32: observer.Observer.GetNodes:input_type -> observer.GetNodesRequest
+ 0, // 33: observer.Observer.ServerStatus:input_type -> observer.ServerStatusRequest
+ 3, // 34: observer.Observer.GetFlows:output_type -> observer.GetFlowsResponse
+ 5, // 35: observer.Observer.GetAgentEvents:output_type -> observer.GetAgentEventsResponse
+ 7, // 36: observer.Observer.GetDebugEvents:output_type -> observer.GetDebugEventsResponse
+ 9, // 37: observer.Observer.GetNodes:output_type -> observer.GetNodesResponse
+ 1, // 38: observer.Observer.ServerStatus:output_type -> observer.ServerStatusResponse
+ 34, // [34:39] is the sub-list for method output_type
+ 29, // [29:34] is the sub-list for method input_type
+ 29, // [29:29] is the sub-list for extension type_name
+ 29, // [29:29] is the sub-list for extension extendee
+ 0, // [0:29] is the sub-list for field type_name
}
func init() { file_observer_observer_proto_init() }
@@ -1914,6 +2001,18 @@ func file_observer_observer_proto_init() {
return nil
}
}
+ file_observer_observer_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetFlowsRequest_Experimental); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
}
file_observer_observer_proto_msgTypes[3].OneofWrappers = []interface{}{
(*GetFlowsResponse_Flow)(nil),
@@ -1933,7 +2032,7 @@ func file_observer_observer_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_observer_observer_proto_rawDesc,
NumEnums: 0,
- NumMessages: 13,
+ NumMessages: 14,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/vendor/github.com/cilium/cilium/api/v1/observer/observer.pb.json.go b/vendor/github.com/cilium/cilium/api/v1/observer/observer.pb.json.go
index a305ccd031..2f16015c3a 100644
--- a/vendor/github.com/cilium/cilium/api/v1/observer/observer.pb.json.go
+++ b/vendor/github.com/cilium/cilium/api/v1/observer/observer.pb.json.go
@@ -55,6 +55,22 @@ func (msg *GetFlowsRequest) UnmarshalJSON(b []byte) error {
}.Unmarshal(b, msg)
}
+// MarshalJSON implements json.Marshaler
+func (msg *GetFlowsRequest_Experimental) MarshalJSON() ([]byte, error) {
+ return protojson.MarshalOptions{
+ UseEnumNumbers: false,
+ EmitUnpopulated: false,
+ UseProtoNames: true,
+ }.Marshal(msg)
+}
+
+// UnmarshalJSON implements json.Unmarshaler
+func (msg *GetFlowsRequest_Experimental) UnmarshalJSON(b []byte) error {
+ return protojson.UnmarshalOptions{
+ DiscardUnknown: false,
+ }.Unmarshal(b, msg)
+}
+
// MarshalJSON implements json.Marshaler
func (msg *GetFlowsResponse) MarshalJSON() ([]byte, error) {
return protojson.MarshalOptions{
diff --git a/vendor/github.com/cilium/cilium/api/v1/observer/observer.proto b/vendor/github.com/cilium/cilium/api/v1/observer/observer.proto
index e514f84c88..2216c3cc5a 100644
--- a/vendor/github.com/cilium/cilium/api/v1/observer/observer.proto
+++ b/vendor/github.com/cilium/cilium/api/v1/observer/observer.proto
@@ -5,6 +5,7 @@ syntax = "proto3";
import "google/protobuf/wrappers.proto";
import "google/protobuf/timestamp.proto";
+import "google/protobuf/field_mask.proto";
import public "flow/flow.proto";
import "relay/relay.proto";
@@ -105,6 +106,16 @@ message GetFlowsRequest {
// Until this time for returned flows. Incompatible with `number`.
google.protobuf.Timestamp until = 8;
+
+ // Experimental contains fields that are not stable yet. Support for
+ // experimental features is always optional and subject to change.
+ message Experimental {
+ // FieldMask allows clients to limit flow's fields that will be returned.
+ // For example, {paths: ["source.id", "destination.id"]} will return flows
+ // with only these two fields set.
+ google.protobuf.FieldMask field_mask = 1;
+ }
+ Experimental experimental = 999;
}
// GetFlowsResponse contains either a flow or a protocol message.
diff --git a/vendor/github.com/cilium/cilium/pkg/client/client.go b/vendor/github.com/cilium/cilium/pkg/client/client.go
index a106f69270..cccd5f9748 100644
--- a/vendor/github.com/cilium/cilium/pkg/client/client.go
+++ b/vendor/github.com/cilium/cilium/pkg/client/client.go
@@ -509,8 +509,8 @@ func FormatStatusResponse(w io.Writer, sr *models.StatusResponse, sd StatusDetai
}
if sr.Proxy != nil {
- fmt.Fprintf(w, "Proxy Status:\tOK, ip %s, %d redirects active on ports %s\n",
- sr.Proxy.IP, sr.Proxy.TotalRedirects, sr.Proxy.PortRange)
+ fmt.Fprintf(w, "Proxy Status:\tOK, ip %s, %d redirects active on ports %s, Envoy: %s\n",
+ sr.Proxy.IP, sr.Proxy.TotalRedirects, sr.Proxy.PortRange, sr.Proxy.EnvoyDeploymentMode)
if sd.AllRedirects && sr.Proxy.TotalRedirects > 0 {
out := make([]string, 0, len(sr.Proxy.Redirects)+1)
for _, r := range sr.Proxy.Redirects {
diff --git a/vendor/github.com/cilium/cilium/pkg/clustermesh/types/types.go b/vendor/github.com/cilium/cilium/pkg/clustermesh/types/types.go
index c6eb771b15..234e49eb12 100644
--- a/vendor/github.com/cilium/cilium/pkg/clustermesh/types/types.go
+++ b/vendor/github.com/cilium/cilium/pkg/clustermesh/types/types.go
@@ -29,6 +29,13 @@ func ValidateClusterID(clusterID uint32) error {
type CiliumClusterConfig struct {
ID uint32 `json:"id,omitempty"`
+
+ Capabilities CiliumClusterConfigCapabilities `json:"capabilities,omitempty"`
+}
+
+type CiliumClusterConfigCapabilities struct {
+ // Supports per-prefix "synced" canaries
+ SyncedCanaries bool `json:"syncedCanaries,omitempty"`
}
func (c0 *CiliumClusterConfig) IsCompatible(c1 *CiliumClusterConfig) error {
@@ -52,3 +59,9 @@ func (c0 *CiliumClusterConfig) IsCompatible(c1 *CiliumClusterConfig) error {
}
return nil
}
+
+// ClusterIDName groups together the ClusterID and the ClusterName
+type ClusterIDName struct {
+ ClusterID uint32
+ ClusterName string
+}
diff --git a/vendor/github.com/cilium/cilium/pkg/command/map_string.go b/vendor/github.com/cilium/cilium/pkg/command/map_string.go
index 904182f5b9..c371f91fe1 100644
--- a/vendor/github.com/cilium/cilium/pkg/command/map_string.go
+++ b/vendor/github.com/cilium/cilium/pkg/command/map_string.go
@@ -32,10 +32,17 @@ func GetStringMapString(vp *viper.Viper, key string) map[string]string {
// GetStringMapStringE is same as GetStringMapString, but with error
func GetStringMapStringE(vp *viper.Viper, key string) (map[string]string, error) {
- data := vp.Get(key)
+ return ToStringMapStringE(vp.Get(key))
+}
+
+// ToStringMapStringE casts an interface to a map[string]string type. The underlying
+// interface type might be a map or string. In the latter case, it is attempted to be
+// json decoded, falling back to the k1=v2,k2=v2 format in case it doesn't look like json.
+func ToStringMapStringE(data interface{}) (map[string]string, error) {
if data == nil {
return map[string]string{}, nil
}
+
v, err := cast.ToStringMapStringE(data)
if err != nil {
var syntaxErr *json.SyntaxError
diff --git a/vendor/github.com/cilium/cilium/pkg/common/utils.go b/vendor/github.com/cilium/cilium/pkg/common/utils.go
index d75e622a24..b8a5a5d400 100644
--- a/vendor/github.com/cilium/cilium/pkg/common/utils.go
+++ b/vendor/github.com/cilium/cilium/pkg/common/utils.go
@@ -96,7 +96,7 @@ func MapStringStructToSlice(m map[string]struct{}) []string {
//
// See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/cpumask.h?h=v4.19#n50
// for more details.
-func GetNumPossibleCPUs(log *logrus.Entry) int {
+func GetNumPossibleCPUs(log logrus.FieldLogger) int {
f, err := os.Open(PossibleCPUSysfsPath)
if err != nil {
log.WithError(err).Errorf("unable to open %q", PossibleCPUSysfsPath)
@@ -107,7 +107,7 @@ func GetNumPossibleCPUs(log *logrus.Entry) int {
return getNumPossibleCPUsFromReader(log, f)
}
-func getNumPossibleCPUsFromReader(log *logrus.Entry, r io.Reader) int {
+func getNumPossibleCPUsFromReader(log logrus.FieldLogger, r io.Reader) int {
out, err := safeio.ReadAllLimit(r, safeio.KB)
if err != nil {
log.WithError(err).Errorf("unable to read %q to get CPU count", PossibleCPUSysfsPath)
diff --git a/vendor/github.com/cilium/cilium/pkg/defaults/defaults.go b/vendor/github.com/cilium/cilium/pkg/defaults/defaults.go
index 3d8b659869..59c9cd0992 100644
--- a/vendor/github.com/cilium/cilium/pkg/defaults/defaults.go
+++ b/vendor/github.com/cilium/cilium/pkg/defaults/defaults.go
@@ -366,6 +366,10 @@ const (
// CiliumNode.Spec.IPAM.PreAllocate if no value is set
IPAMPreAllocation = 8
+ // IPAMMultiPoolPreAllocation is the default value for multi-pool IPAM
+ // pre-allocations
+ IPAMMultiPoolPreAllocation = "default=8"
+
// ENIFirstInterfaceIndex is the default value for
// CiliumNode.Spec.ENI.FirstInterfaceIndex if no value is set.
ENIFirstInterfaceIndex = 0
@@ -478,6 +482,11 @@ const (
// for local traffic
EnableIdentityMark = true
+ // EnableHighScaleIPcache enables the special ipcache mode for high scale
+ // clusters. The ipcache content will be reduced to the strict minimum and
+ // traffic will be encapsulated to carry security identities.
+ EnableHighScaleIPcache = false
+
// K8sEnableLeasesFallbackDiscovery enables k8s to fallback to API probing to check
// for the support of Leases in Kubernetes when there is an error in discovering
// API groups using Discovery API.
@@ -508,6 +517,9 @@ const (
// TunnelProtocol is the default tunneling protocol
TunnelProtocol = "vxlan"
+ // Use the CiliumInternalIPs (vs. NodeInternalIPs) for IPsec encapsulation.
+ UseCiliumInternalIPForIPsec = false
+
// TunnelPortVXLAN is the default VXLAN port
TunnelPortVXLAN = 8472
// TunnelPortGeneve is the default Geneve port
diff --git a/vendor/github.com/cilium/cilium/pkg/endpoint/id/id.go b/vendor/github.com/cilium/cilium/pkg/endpoint/id/id.go
index ef99cf078f..73a2159bde 100644
--- a/vendor/github.com/cilium/cilium/pkg/endpoint/id/id.go
+++ b/vendor/github.com/cilium/cilium/pkg/endpoint/id/id.go
@@ -6,7 +6,7 @@ package id
import (
"fmt"
"math"
- "net"
+ "net/netip"
"strconv"
"strings"
)
@@ -70,13 +70,16 @@ func NewID(prefix PrefixType, id string) string {
return string(prefix) + ":" + id
}
-// NewIPPrefixID returns an identifier based on the IP address specified
-func NewIPPrefixID(ip net.IP) string {
- if ip.To4() != nil {
- return NewID(IPv4Prefix, ip.String())
+// NewIPPrefixID returns an identifier based on the IP address specified. If ip
+// is invalid, an empty string is returned.
+func NewIPPrefixID(ip netip.Addr) string {
+ if ip.IsValid() {
+ if ip.Is4() {
+ return NewID(IPv4Prefix, ip.String())
+ }
+ return NewID(IPv6Prefix, ip.String())
}
-
- return NewID(IPv6Prefix, ip.String())
+ return ""
}
// splitID splits ID into prefix and id. No validation is performed on prefix.
diff --git a/vendor/github.com/cilium/cilium/pkg/identity/identity.go b/vendor/github.com/cilium/cilium/pkg/identity/identity.go
index ac4dc86637..1389448071 100644
--- a/vendor/github.com/cilium/cilium/pkg/identity/identity.go
+++ b/vendor/github.com/cilium/cilium/pkg/identity/identity.go
@@ -113,6 +113,12 @@ func (id *Identity) IsWellKnown() bool {
return WellKnown.lookupByNumericIdentity(id.ID) != nil
}
+// IsWellKnownIdentity returns true if the identity represents a well-known
+// identity, false otherwise.
+func IsWellKnownIdentity(id NumericIdentity) bool {
+ return WellKnown.lookupByNumericIdentity(id) != nil
+}
+
// NewIdentityFromLabelArray creates a new identity
func NewIdentityFromLabelArray(id NumericIdentity, lblArray labels.LabelArray) *Identity {
var lbls labels.Labels
diff --git a/vendor/github.com/cilium/cilium/pkg/ipam/option/option.go b/vendor/github.com/cilium/cilium/pkg/ipam/option/option.go
index 121482ab95..2d82d82bce 100644
--- a/vendor/github.com/cilium/cilium/pkg/ipam/option/option.go
+++ b/vendor/github.com/cilium/cilium/pkg/ipam/option/option.go
@@ -26,6 +26,9 @@ const (
// IPAMClusterPoolV2 is the value to select cluster pool version 2
IPAMClusterPoolV2 = "cluster-pool-v2beta"
+ // IPAMMultiPool is the value to select the multi pool IPAM mode
+ IPAMMultiPool = "multi-pool"
+
// IPAMAlibabaCloud is the value to select the AlibabaCloud ENI IPAM plugin for option.IPAM
IPAMAlibabaCloud = "alibabacloud"
diff --git a/vendor/github.com/cilium/cilium/pkg/ipam/types/types.go b/vendor/github.com/cilium/cilium/pkg/ipam/types/types.go
index ae72e9f7f7..e85b7fa0d5 100644
--- a/vendor/github.com/cilium/cilium/pkg/ipam/types/types.go
+++ b/vendor/github.com/cilium/cilium/pkg/ipam/types/types.go
@@ -51,6 +51,56 @@ type AllocationIP struct {
// AllocationMap is a map of allocated IPs indexed by IP
type AllocationMap map[string]AllocationIP
+// IPAMPodCIDR is a pod CIDR
+//
+// +kubebuilder:validation:Format=cidr
+type IPAMPodCIDR string
+
+// IPAMPoolAllocation describes an allocation of an IPAM pool from the operator to the
+// node. It contains the assigned PodCIDRs allocated from this pool
+type IPAMPoolAllocation struct {
+ // Pool is the name of the IPAM pool backing this allocation
+ //
+ // +kubebuilder:validation:MinLength=1
+ Pool string `json:"pool"`
+
+ // CIDRs contains a list of pod CIDRs currently allocated from this pool
+ //
+ // +optional
+ CIDRs []IPAMPodCIDR `json:"cidrs,omitempty"`
+}
+
+type IPAMPoolRequest struct {
+ // Pool is the name of the IPAM pool backing this request
+ //
+ // +kubebuilder:validation:MinLength=1
+ Pool string `json:"pool"`
+
+ // Needed indicates how many IPs out of the above Pool this node requests
+ // from the operator. The operator runs a reconciliation loop to ensure each
+ // node always has enough PodCIDRs allocated in each pool to fulfill the
+ // requested number of IPs here.
+ //
+ // +optional
+ Needed IPAMPoolDemand `json:"needed,omitempty"`
+}
+
+type IPAMPoolSpec struct {
+ // Requested contains a list of IPAM pool requests, i.e. indicates how many
+ // addresses this node requests out of each pool listed here. This field
+ // is owned and written to by cilium-agent and read by the operator.
+ //
+ // +optional
+ Requested []IPAMPoolRequest `json:"requested,omitempty"`
+
+ // Allocated contains the list of pooled CIDR assigned to this node. The
+ // operator will add new pod CIDRs to this field, whereas the agent will
+ // remove CIDRs it has released.
+ //
+ // +optional
+ Allocated []IPAMPoolAllocation `json:"allocated,omitempty"`
+}
+
// IPAMSpec is the IPAM specification of the node
//
// This structure is embedded into v2.CiliumNode
@@ -62,6 +112,11 @@ type IPAMSpec struct {
// +optional
Pool AllocationMap `json:"pool,omitempty"`
+ // Pools contains the list of assigned IPAM pools for this node.
+ //
+ // +optional
+ Pools IPAMPoolSpec `json:"pools,omitempty"`
+
// PodCIDRs is the list of CIDRs available to the node for allocation.
// When an IP is used, the IP will be added to Status.IPAM.Used
//
@@ -159,6 +214,22 @@ type IPAMStatus struct {
ReleaseIPs map[string]IPReleaseStatus `json:"release-ips,omitempty"`
}
+// IPAMPoolRequest is a request from the agent to the operator, indicating how
+// may IPs it requires from a given pool
+type IPAMPoolDemand struct {
+ // IPv4Addrs contains the number of requested IPv4 addresses out of a given
+ // pool
+ //
+ // +optional
+ IPv4Addrs int `json:"ipv4-addrs,omitempty"`
+
+ // IPv6Addrs contains the number of requested IPv6 addresses out of a given
+ // pool
+ //
+ // +optional
+ IPv6Addrs int `json:"ipv6-addrs,omitempty"`
+}
+
type PodCIDRMap map[string]PodCIDRMapEntry
// +kubebuilder:validation:Enum=released;depleted;in-use
@@ -397,7 +468,7 @@ func (m *InstanceMap) ForeachAddress(instanceID string, fn AddressIterator) erro
if instance := m.data[instanceID]; instance != nil {
return foreachAddress(instanceID, instance, fn)
}
- return fmt.Errorf("instance does not exist")
+ return fmt.Errorf("instance does not exist: %q", instanceID)
}
for instanceID, instance := range m.data {
@@ -438,7 +509,7 @@ func (m *InstanceMap) ForeachInterface(instanceID string, fn InterfaceIterator)
if instance := m.data[instanceID]; instance != nil {
return foreachInterface(instanceID, instance, fn)
}
- return fmt.Errorf("instance does not exist")
+ return fmt.Errorf("instance does not exist: %q", instanceID)
}
for instanceID, instance := range m.data {
if err := foreachInterface(instanceID, instance, fn); err != nil {
diff --git a/vendor/github.com/cilium/cilium/pkg/ipam/types/zz_generated.deepcopy.go b/vendor/github.com/cilium/cilium/pkg/ipam/types/zz_generated.deepcopy.go
index 7815c58870..dc090499f1 100644
--- a/vendor/github.com/cilium/cilium/pkg/ipam/types/zz_generated.deepcopy.go
+++ b/vendor/github.com/cilium/cilium/pkg/ipam/types/zz_generated.deepcopy.go
@@ -46,6 +46,88 @@ func (in AllocationMap) DeepCopy() AllocationMap {
return *out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *IPAMPoolAllocation) DeepCopyInto(out *IPAMPoolAllocation) {
+ *out = *in
+ if in.CIDRs != nil {
+ in, out := &in.CIDRs, &out.CIDRs
+ *out = make([]IPAMPodCIDR, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolAllocation.
+func (in *IPAMPoolAllocation) DeepCopy() *IPAMPoolAllocation {
+ if in == nil {
+ return nil
+ }
+ out := new(IPAMPoolAllocation)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *IPAMPoolDemand) DeepCopyInto(out *IPAMPoolDemand) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolDemand.
+func (in *IPAMPoolDemand) DeepCopy() *IPAMPoolDemand {
+ if in == nil {
+ return nil
+ }
+ out := new(IPAMPoolDemand)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *IPAMPoolRequest) DeepCopyInto(out *IPAMPoolRequest) {
+ *out = *in
+ out.Needed = in.Needed
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolRequest.
+func (in *IPAMPoolRequest) DeepCopy() *IPAMPoolRequest {
+ if in == nil {
+ return nil
+ }
+ out := new(IPAMPoolRequest)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *IPAMPoolSpec) DeepCopyInto(out *IPAMPoolSpec) {
+ *out = *in
+ if in.Requested != nil {
+ in, out := &in.Requested, &out.Requested
+ *out = make([]IPAMPoolRequest, len(*in))
+ copy(*out, *in)
+ }
+ if in.Allocated != nil {
+ in, out := &in.Allocated, &out.Allocated
+ *out = make([]IPAMPoolAllocation, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMPoolSpec.
+func (in *IPAMPoolSpec) DeepCopy() *IPAMPoolSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(IPAMPoolSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *IPAMSpec) DeepCopyInto(out *IPAMSpec) {
*out = *in
@@ -56,6 +138,7 @@ func (in *IPAMSpec) DeepCopyInto(out *IPAMSpec) {
(*out)[key] = val
}
}
+ in.Pools.DeepCopyInto(&out.Pools)
if in.PodCIDRs != nil {
in, out := &in.PodCIDRs, &out.PodCIDRs
*out = make([]string, len(*in))
diff --git a/vendor/github.com/cilium/cilium/pkg/ipam/types/zz_generated.deepequal.go b/vendor/github.com/cilium/cilium/pkg/ipam/types/zz_generated.deepequal.go
index b87fbf859c..b27fd1c459 100644
--- a/vendor/github.com/cilium/cilium/pkg/ipam/types/zz_generated.deepequal.go
+++ b/vendor/github.com/cilium/cilium/pkg/ipam/types/zz_generated.deepequal.go
@@ -49,6 +49,114 @@ func (in *AllocationMap) DeepEqual(other *AllocationMap) bool {
return true
}
+// DeepEqual is an autogenerated deepequal function, deeply comparing the
+// receiver with other. in must be non-nil.
+func (in *IPAMPoolAllocation) DeepEqual(other *IPAMPoolAllocation) bool {
+ if other == nil {
+ return false
+ }
+
+ if in.Pool != other.Pool {
+ return false
+ }
+ if ((in.CIDRs != nil) && (other.CIDRs != nil)) || ((in.CIDRs == nil) != (other.CIDRs == nil)) {
+ in, other := &in.CIDRs, &other.CIDRs
+ if other == nil {
+ return false
+ }
+
+ if len(*in) != len(*other) {
+ return false
+ } else {
+ for i, inElement := range *in {
+ if inElement != (*other)[i] {
+ return false
+ }
+ }
+ }
+ }
+
+ return true
+}
+
+// DeepEqual is an autogenerated deepequal function, deeply comparing the
+// receiver with other. in must be non-nil.
+func (in *IPAMPoolDemand) DeepEqual(other *IPAMPoolDemand) bool {
+ if other == nil {
+ return false
+ }
+
+ if in.IPv4Addrs != other.IPv4Addrs {
+ return false
+ }
+ if in.IPv6Addrs != other.IPv6Addrs {
+ return false
+ }
+
+ return true
+}
+
+// DeepEqual is an autogenerated deepequal function, deeply comparing the
+// receiver with other. in must be non-nil.
+func (in *IPAMPoolRequest) DeepEqual(other *IPAMPoolRequest) bool {
+ if other == nil {
+ return false
+ }
+
+ if in.Pool != other.Pool {
+ return false
+ }
+ if in.Needed != other.Needed {
+ return false
+ }
+
+ return true
+}
+
+// DeepEqual is an autogenerated deepequal function, deeply comparing the
+// receiver with other. in must be non-nil.
+func (in *IPAMPoolSpec) DeepEqual(other *IPAMPoolSpec) bool {
+ if other == nil {
+ return false
+ }
+
+ if ((in.Requested != nil) && (other.Requested != nil)) || ((in.Requested == nil) != (other.Requested == nil)) {
+ in, other := &in.Requested, &other.Requested
+ if other == nil {
+ return false
+ }
+
+ if len(*in) != len(*other) {
+ return false
+ } else {
+ for i, inElement := range *in {
+ if !inElement.DeepEqual(&(*other)[i]) {
+ return false
+ }
+ }
+ }
+ }
+
+ if ((in.Allocated != nil) && (other.Allocated != nil)) || ((in.Allocated == nil) != (other.Allocated == nil)) {
+ in, other := &in.Allocated, &other.Allocated
+ if other == nil {
+ return false
+ }
+
+ if len(*in) != len(*other) {
+ return false
+ } else {
+ for i, inElement := range *in {
+ if !inElement.DeepEqual(&(*other)[i]) {
+ return false
+ }
+ }
+ }
+ }
+
+ return true
+}
+
// DeepEqual is an autogenerated deepequal function, deeply comparing the
// receiver with other. in must be non-nil.
func (in *IPAMSpec) DeepEqual(other *IPAMSpec) bool {
@@ -63,6 +171,10 @@ func (in *IPAMSpec) DeepEqual(other *IPAMSpec) bool {
}
}
+ if !in.Pools.DeepEqual(&other.Pools) {
+ return false
+ }
+
if ((in.PodCIDRs != nil) && (other.PodCIDRs != nil)) || ((in.PodCIDRs == nil) != (other.PodCIDRs == nil)) {
in, other := &in.PodCIDRs, &other.PodCIDRs
if other == nil {
diff --git a/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/register.go b/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/register.go
index 7f0721c31b..cfc12d39ae 100644
--- a/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/register.go
+++ b/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/register.go
@@ -15,5 +15,5 @@ const (
//
// Maintainers: Run ./Documentation/check-crd-compat-table.sh for each release
// Developers: Bump patch for each change in the CRD schema.
- CustomResourceDefinitionSchemaVersion = "1.26.8"
+ CustomResourceDefinitionSchemaVersion = "1.26.9"
)
diff --git a/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/bgpp_types.go b/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/bgpp_types.go
index 4ecb6e7ce2..bec1db8cc3 100644
--- a/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/bgpp_types.go
+++ b/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/bgpp_types.go
@@ -79,6 +79,27 @@ type CiliumBGPNeighbor struct {
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=4294967295
PeerASN int `json:"peerASN"`
+ // ConnectRetryTime defines the initial value for the BGP ConnectRetryTimer (RFC 4271, Section 8).
+ // The default value for the ConnectRetryTime (if empty or zero) is 120 seconds.
+ // Rounded internally to the nearest whole second.
+ //
+ // +kubebuilder:validation:Optional
+ // +kubebuilder:validation:Format=duration
+ ConnectRetryTime metav1.Duration `json:"connectRetryTime,omitempty"`
+ // HoldTime defines the initial value for the BGP HoldTimer (RFC 4271, Section 4.2).
+ // The default value for the HoldTime (if empty or zero) is 90 seconds.
+ // Rounded internally to the nearest whole second.
+ //
+ // +kubebuilder:validation:Optional
+ // +kubebuilder:validation:Format=duration
+ HoldTime metav1.Duration `json:"holdTime,omitempty"`
+ // KeepaliveTime defines the initial value for the BGP KeepaliveTimer (RFC 4271, Section 8).
+ // The default value for the KeepaliveTime (if empty or zero) is 1/3 of the HoldTime.
+ // Rounded internally to the nearest whole second.
+ //
+ // +kubebuilder:validation:Optional
+ // +kubebuilder:validation:Format=duration
+ KeepAliveTime metav1.Duration `json:"keepAliveTime,omitempty"`
}
// CiliumBGPVirtualRouter defines a discrete BGP virtual router configuration.
diff --git a/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepcopy.go b/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepcopy.go
index 243984d11e..2e4edc8fd8 100644
--- a/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepcopy.go
+++ b/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepcopy.go
@@ -20,6 +20,9 @@ import (
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CiliumBGPNeighbor) DeepCopyInto(out *CiliumBGPNeighbor) {
*out = *in
+ out.ConnectRetryTime = in.ConnectRetryTime
+ out.HoldTime = in.HoldTime
+ out.KeepAliveTime = in.KeepAliveTime
return
}
diff --git a/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepequal.go b/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepequal.go
index c7d6e71ede..91bb17b84f 100644
--- a/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepequal.go
+++ b/vendor/github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepequal.go
@@ -21,6 +21,17 @@ func (in *CiliumBGPNeighbor) DeepEqual(other *CiliumBGPNeighbor) bool {
if in.PeerASN != other.PeerASN {
return false
}
+ if in.ConnectRetryTime != other.ConnectRetryTime {
+ return false
+ }
+
+ if in.HoldTime != other.HoldTime {
+ return false
+ }
+
+ if in.KeepAliveTime != other.KeepAliveTime {
+ return false
+ }
return true
}
diff --git a/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/generated.pb.go b/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/generated.pb.go
index 4a3b3bf98d..5dbe476845 100644
--- a/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/generated.pb.go
+++ b/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/generated.pb.go
@@ -1175,171 +1175,172 @@ func init() {
}
var fileDescriptor_871504499faea14d = []byte{
- // 2612 bytes of a gzipped FileDescriptorProto
+ // 2631 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0x4d, 0x6c, 0x23, 0x49,
- 0xf5, 0x9f, 0xb6, 0xe3, 0xc4, 0x7e, 0x4e, 0x9c, 0x4d, 0xcd, 0x64, 0xd5, 0x93, 0xff, 0x6e, 0x92,
- 0x7f, 0x0f, 0x42, 0xc3, 0x97, 0xa3, 0x19, 0x08, 0x0c, 0x33, 0xbb, 0xc3, 0xc4, 0x4e, 0x66, 0xc7,
- 0xbb, 0xc9, 0xac, 0x29, 0x47, 0x0b, 0x82, 0x03, 0xdb, 0xe9, 0xae, 0xd8, 0xbd, 0xb1, 0xbb, 0x4d,
- 0x57, 0x79, 0x66, 0x2d, 0x21, 0x58, 0x84, 0x40, 0x0b, 0xac, 0x04, 0x47, 0x2e, 0x5c, 0xb8, 0x71,
- 0x86, 0x0b, 0xe2, 0xbc, 0x62, 0xb8, 0x2d, 0xb7, 0x11, 0x42, 0x61, 0x27, 0x48, 0xdc, 0x38, 0x20,
- 0x6e, 0x41, 0x42, 0xa8, 0xaa, 0xab, 0xaa, 0xbb, 0x1d, 0x7b, 0x26, 0x63, 0x47, 0x8a, 0x38, 0xb9,
- 0xfb, 0xbd, 0x57, 0xef, 0x57, 0xaf, 0xea, 0xd5, 0xfb, 0x28, 0x37, 0x6c, 0x35, 0x3d, 0xd6, 0xea,
- 0xed, 0x95, 0x9d, 0xa0, 0xb3, 0xe6, 0x78, 0x6d, 0xaf, 0xa7, 0x7f, 0xba, 0x07, 0xcd, 0xb5, 0x83,
- 0x1b, 0x74, 0x8d, 0xb6, 0xbd, 0x8e, 0x78, 0xb0, 0xbb, 0xde, 0x9a, 0x13, 0x84, 0x64, 0xed, 0xc1,
- 0xb5, 0xb5, 0x26, 0xf1, 0x49, 0x68, 0x33, 0xe2, 0x96, 0xbb, 0x61, 0xc0, 0x02, 0xb4, 0x1e, 0xab,
- 0x29, 0x47, 0xe3, 0xd5, 0x4f, 0xf7, 0xa0, 0x59, 0x3e, 0xb8, 0x41, 0xcb, 0x5c, 0x8d, 0x78, 0xb0,
- 0xbb, 0x5e, 0x99, 0xab, 0x29, 0x3f, 0xb8, 0xb6, 0x74, 0xf7, 0xb9, 0xd0, 0xe9, 0x5a, 0x87, 0x30,
- 0x7b, 0x08, 0xfc, 0xd2, 0xe7, 0x12, 0x7a, 0x9a, 0x41, 0x33, 0x58, 0x13, 0xe4, 0xbd, 0xde, 0xbe,
- 0x78, 0x13, 0x2f, 0xe2, 0x49, 0x8a, 0x73, 0x85, 0x65, 0x2f, 0xe0, 0x3a, 0x3b, 0xb6, 0xd3, 0xf2,
- 0x7c, 0x12, 0xf6, 0x05, 0x62, 0xd8, 0xf3, 0x99, 0xd7, 0x21, 0x27, 0xf4, 0x7f, 0xf1, 0x59, 0x03,
- 0xa8, 0xd3, 0x22, 0x1d, 0x7b, 0x70, 0x9c, 0xb5, 0x0d, 0xa5, 0x6a, 0xdb, 0x23, 0x3e, 0xab, 0xd5,
- 0xab, 0x81, 0xbf, 0xef, 0x35, 0xd1, 0x4d, 0x28, 0xf1, 0x01, 0x41, 0x8f, 0x35, 0x88, 0x13, 0xf8,
- 0x2e, 0x35, 0x8d, 0x55, 0xe3, 0x6a, 0xae, 0x82, 0x8e, 0x0e, 0x57, 0x4a, 0xbb, 0x29, 0x0e, 0x1e,
- 0x90, 0xb4, 0x7e, 0x9f, 0x81, 0x42, 0x35, 0xf0, 0x99, 0xcd, 0xf1, 0xd1, 0x2a, 0x4c, 0xf9, 0x76,
- 0x87, 0x88, 0xf1, 0x85, 0xca, 0xec, 0xa3, 0xc3, 0x95, 0x0b, 0x47, 0x87, 0x2b, 0x53, 0xf7, 0xed,
- 0x0e, 0xc1, 0x82, 0x83, 0xae, 0x40, 0xce, 0xeb, 0xd8, 0x4d, 0x62, 0x66, 0x84, 0xc8, 0x9c, 0x14,
- 0xc9, 0xd5, 0x38, 0x11, 0x47, 0x3c, 0xe4, 0x41, 0xae, 0x1b, 0x84, 0x8c, 0x9a, 0xd3, 0xab, 0xd9,
- 0xab, 0xc5, 0xeb, 0x9b, 0xe5, 0xb1, 0x76, 0xb2, 0xac, 0xe7, 0x55, 0x0f, 0x42, 0x16, 0x43, 0xf1,
- 0x37, 0x8a, 0x23, 0x04, 0xf4, 0x1d, 0x98, 0x7d, 0x10, 0xb4, 0x7b, 0x1d, 0xb2, 0x13, 0xf4, 0x7c,
- 0x46, 0xcd, 0x82, 0x40, 0xac, 0x8c, 0x89, 0xf8, 0x56, 0xac, 0xaa, 0x72, 0x49, 0xe2, 0xcd, 0x26,
- 0x88, 0x14, 0xa7, 0xd0, 0xac, 0xff, 0x18, 0x30, 0x97, 0x9a, 0xe5, 0x29, 0x56, 0xf0, 0xb3, 0x90,
- 0x6f, 0x05, 0x94, 0x71, 0x69, 0xb1, 0x88, 0xb9, 0xca, 0x0b, 0x52, 0x2a, 0x7f, 0x4f, 0xd2, 0xb1,
- 0x96, 0x40, 0xb7, 0x60, 0xce, 0x49, 0x02, 0x98, 0x59, 0x31, 0x64, 0x51, 0x0e, 0x49, 0xa3, 0xe3,
- 0xb4, 0x2c, 0xba, 0x01, 0x79, 0xe1, 0x33, 0x4e, 0xd0, 0x36, 0xa7, 0xc4, 0x84, 0x5e, 0x52, 0x50,
- 0x75, 0x49, 0x3f, 0x4e, 0x3c, 0x63, 0x2d, 0x8d, 0x3e, 0x09, 0xd3, 0x7c, 0x0a, 0xb5, 0xba, 0x99,
- 0x13, 0xe3, 0x4a, 0x72, 0xdc, 0xf4, 0x3d, 0x41, 0xc5, 0x92, 0x6b, 0xfd, 0xd0, 0x80, 0x92, 0x9e,
- 0x42, 0x83, 0xd9, 0x8c, 0x20, 0x0a, 0x33, 0x61, 0xcf, 0xf7, 0x3d, 0xbf, 0x29, 0xcc, 0x2b, 0x5e,
- 0xdf, 0x9e, 0x74, 0xfb, 0x85, 0x5e, 0x1c, 0xe9, 0xac, 0x14, 0x8f, 0x0e, 0x57, 0x66, 0xe4, 0x0b,
- 0x56, 0x48, 0xd6, 0x8f, 0x0c, 0x58, 0x1c, 0x2a, 0x8f, 0x3a, 0x50, 0xa0, 0xcc, 0x0e, 0x19, 0x71,
- 0x37, 0x98, 0xd8, 0x95, 0xe2, 0xf5, 0x57, 0x9e, 0x6f, 0x42, 0xb4, 0xcc, 0x43, 0x04, 0x9f, 0x11,
- 0x3f, 0x4b, 0x95, 0x05, 0xb9, 0x14, 0x85, 0x86, 0x52, 0x8b, 0x63, 0x04, 0xeb, 0xb7, 0x06, 0xcc,
- 0xa7, 0x26, 0xd2, 0xa3, 0xe8, 0x1d, 0xc8, 0x51, 0x3e, 0x25, 0xb9, 0x1e, 0x5b, 0x67, 0xb2, 0x1e,
- 0xf1, 0x79, 0x88, 0xcc, 0x8d, 0x20, 0xd0, 0x3a, 0x14, 0xb5, 0x0f, 0xd4, 0x36, 0xcd, 0xbc, 0xd8,
- 0xbd, 0x8b, 0x52, 0xb4, 0x58, 0x8d, 0x59, 0x38, 0x29, 0x67, 0x7d, 0x0d, 0xe6, 0xb7, 0x7c, 0xb7,
- 0x1b, 0x78, 0x3e, 0xdb, 0x70, 0xdd, 0x90, 0x50, 0x8a, 0x96, 0x20, 0xe3, 0x75, 0xa5, 0x1f, 0x83,
- 0x54, 0x90, 0xa9, 0xd5, 0x71, 0xc6, 0xeb, 0xa2, 0xab, 0x90, 0xf7, 0x03, 0x97, 0x70, 0xaf, 0x96,
- 0x8e, 0x35, 0xcb, 0x9d, 0xea, 0xbe, 0xa4, 0x61, 0xcd, 0xb5, 0x3e, 0x30, 0x60, 0x56, 0x69, 0x3e,
- 0xe5, 0x01, 0x59, 0x85, 0xa9, 0x6e, 0x7c, 0x38, 0xb4, 0x84, 0x70, 0x70, 0xc1, 0x49, 0xf9, 0x75,
- 0xf6, 0x79, 0xfc, 0xda, 0xfa, 0x97, 0x01, 0x25, 0x35, 0x9d, 0x46, 0x6f, 0x8f, 0x12, 0x86, 0x1e,
- 0x42, 0xc1, 0x8e, 0x4c, 0x26, 0x3c, 0x70, 0xf2, 0xf0, 0x71, 0x77, 0xcc, 0x1d, 0x1a, 0x58, 0xc2,
- 0xd8, 0x55, 0x36, 0x14, 0x00, 0x8e, 0xb1, 0x50, 0x4b, 0x45, 0xc9, 0xac, 0x00, 0xad, 0x4e, 0x08,
- 0x3a, 0x3a, 0x48, 0x5a, 0xff, 0x34, 0xa0, 0xa0, 0xc4, 0x28, 0x0a, 0x21, 0xcf, 0x1d, 0xda, 0xb5,
- 0x99, 0x2d, 0x0f, 0x44, 0x65, 0xdc, 0x03, 0xf1, 0xe6, 0xde, 0x3b, 0xc4, 0x61, 0x3b, 0x84, 0xd9,
- 0x15, 0x24, 0x91, 0x21, 0xa6, 0x61, 0x8d, 0x83, 0xba, 0x30, 0x43, 0xc5, 0x72, 0x53, 0x33, 0x23,
- 0xac, 0xdd, 0x9a, 0xd0, 0xda, 0x68, 0xf3, 0x2a, 0xf3, 0x12, 0x75, 0x26, 0x7a, 0xa7, 0x58, 0xc1,
- 0x58, 0x7f, 0x37, 0x60, 0x4e, 0xdb, 0xbc, 0xed, 0x51, 0x86, 0xfc, 0x13, 0x76, 0xdf, 0x19, 0xd7,
- 0x6e, 0xae, 0x4f, 0x58, 0xad, 0x43, 0xb7, 0xa2, 0x24, 0x6c, 0x26, 0x90, 0xf3, 0x18, 0xe9, 0x28,
- 0x8b, 0xef, 0x4c, 0x68, 0x31, 0x4d, 0x24, 0x5b, 0xae, 0x16, 0x47, 0xda, 0xad, 0x3f, 0x18, 0x70,
- 0x71, 0x3b, 0xb0, 0xdd, 0x8a, 0xdd, 0xb6, 0x7d, 0x87, 0x84, 0x35, 0xbf, 0xf9, 0xcc, 0xf3, 0x2b,
- 0x73, 0x90, 0x38, 0x88, 0x51, 0x22, 0x4f, 0xe5, 0x20, 0x5f, 0x9c, 0x61, 0x25, 0x81, 0xf6, 0x95,
- 0xa3, 0x4e, 0x09, 0x43, 0x36, 0xc6, 0x34, 0x84, 0xbb, 0x64, 0x14, 0x11, 0x47, 0xb8, 0xe9, 0x4f,
- 0x0d, 0x40, 0x49, 0x4b, 0x64, 0xf8, 0xec, 0xc1, 0x8c, 0x17, 0xd9, 0x24, 0x8f, 0xe7, 0xeb, 0x63,
- 0x4e, 0x60, 0xc8, 0x2a, 0xc5, 0x0e, 0x24, 0x09, 0x58, 0x61, 0x59, 0xdf, 0x83, 0x02, 0x0f, 0x4a,
- 0xb4, 0x6b, 0x3b, 0xe4, 0x3c, 0xce, 0x8c, 0xf0, 0x60, 0x3d, 0x83, 0xff, 0x65, 0x0f, 0xd6, 0x46,
- 0x8c, 0xf0, 0xe0, 0x47, 0x19, 0x98, 0xe2, 0xa9, 0xe3, 0x5c, 0x22, 0x93, 0x0d, 0x53, 0xb4, 0x4b,
- 0x1c, 0x99, 0x9b, 0xbf, 0x32, 0xae, 0x89, 0x81, 0x4b, 0x1a, 0x5d, 0xe2, 0xc4, 0xe9, 0x8a, 0xbf,
- 0x61, 0xa1, 0x1a, 0x79, 0x30, 0x4d, 0x85, 0x2b, 0x8b, 0x64, 0x35, 0xfe, 0x01, 0x12, 0x20, 0xd1,
- 0x01, 0xd2, 0xf5, 0x58, 0xf4, 0x8e, 0x25, 0x80, 0xd5, 0x81, 0x22, 0x97, 0x52, 0x39, 0xfc, 0xf3,
- 0x30, 0xc5, 0xfa, 0x5d, 0x95, 0x6c, 0x57, 0xd4, 0xdc, 0x76, 0xfb, 0x5d, 0x72, 0x7c, 0xb8, 0x32,
- 0x9f, 0x10, 0xe5, 0x24, 0x2c, 0x84, 0xd1, 0xa7, 0x60, 0x46, 0x26, 0x29, 0x19, 0x1b, 0xf4, 0x19,
- 0x91, 0xb2, 0x58, 0xf1, 0xad, 0x5f, 0x73, 0x17, 0x0d, 0x5c, 0x52, 0x0d, 0x7c, 0xd7, 0x63, 0x5e,
- 0xe0, 0xa3, 0xf5, 0x14, 0xe2, 0xff, 0x0f, 0x20, 0x2e, 0xa4, 0x84, 0x13, 0x98, 0x5f, 0xd6, 0x4b,
- 0x94, 0x49, 0x0d, 0x94, 0xf6, 0xf1, 0xc9, 0xea, 0x61, 0x69, 0x93, 0x79, 0xa9, 0x1a, 0x12, 0x9b,
- 0x06, 0xfe, 0x60, 0xa9, 0x8a, 0x05, 0x15, 0x4b, 0xae, 0xf5, 0x17, 0x03, 0x44, 0x81, 0x72, 0x2e,
- 0x27, 0xe9, 0xed, 0xf4, 0x49, 0xba, 0x35, 0x81, 0x07, 0x8c, 0x38, 0x44, 0x1f, 0x4a, 0xf3, 0xb8,
- 0xdf, 0xf1, 0x2d, 0xec, 0x06, 0x6e, 0xb5, 0xb6, 0x89, 0xe5, 0x46, 0xe8, 0x2d, 0xac, 0x47, 0x64,
- 0xac, 0xf8, 0xbc, 0x94, 0x93, 0x8f, 0xd4, 0x9c, 0x59, 0xcd, 0xaa, 0x52, 0x4e, 0xca, 0x51, 0xac,
- 0xb9, 0xc8, 0x85, 0x69, 0x5e, 0x2f, 0x32, 0x6a, 0xe6, 0x84, 0x11, 0xaf, 0x8c, 0x69, 0xc4, 0x2e,
- 0x57, 0x12, 0x6f, 0x93, 0x78, 0xa5, 0x58, 0xea, 0xb6, 0xfe, 0x6d, 0x00, 0xc4, 0x8e, 0x8e, 0xde,
- 0x05, 0x70, 0xd4, 0xc6, 0xab, 0x04, 0xb4, 0x39, 0xc1, 0xea, 0x69, 0x2f, 0x8a, 0xc3, 0x82, 0x26,
- 0x51, 0x9c, 0xc0, 0x42, 0x34, 0x59, 0x17, 0xe6, 0x26, 0x6a, 0x2b, 0x13, 0xe7, 0xec, 0xe9, 0x35,
- 0xa1, 0xf5, 0x61, 0x06, 0xb2, 0xf5, 0xc0, 0x3d, 0x97, 0x48, 0xf8, 0x76, 0x2a, 0x12, 0xde, 0x1e,
- 0x3b, 0xcb, 0xbb, 0x23, 0x03, 0x61, 0x6b, 0x20, 0x10, 0xde, 0x99, 0x00, 0xe3, 0xe9, 0x71, 0xf0,
- 0x71, 0x16, 0x66, 0xb9, 0x0b, 0xeb, 0xb8, 0xf4, 0x85, 0x54, 0x5c, 0x5a, 0x1d, 0x88, 0x4b, 0x2f,
- 0x24, 0x65, 0xcf, 0x26, 0x2c, 0xf5, 0x61, 0xae, 0x6d, 0x53, 0x56, 0x0f, 0x83, 0x3d, 0xc2, 0xfb,
- 0x46, 0x69, 0xf2, 0x64, 0xbd, 0xa7, 0x6e, 0xfb, 0xb7, 0x93, 0xaa, 0x71, 0x1a, 0x09, 0xbd, 0x6f,
- 0x00, 0xe2, 0x94, 0xdd, 0xd0, 0xf6, 0x69, 0x64, 0x92, 0x27, 0x1b, 0xb5, 0x49, 0x27, 0xb0, 0x24,
- 0x27, 0x80, 0xb6, 0x4f, 0xe8, 0xc7, 0x43, 0x30, 0x4f, 0x1b, 0x9c, 0x79, 0xc0, 0xea, 0x10, 0x4a,
- 0xed, 0x26, 0x31, 0xa7, 0xd3, 0x01, 0x6b, 0x27, 0x22, 0x63, 0xc5, 0xb7, 0xae, 0x40, 0xae, 0x1e,
- 0xb8, 0xb5, 0xfa, 0xd3, 0x0a, 0x5c, 0xeb, 0xcf, 0x06, 0xf0, 0x50, 0x77, 0x2e, 0xb1, 0xfe, 0x5b,
- 0xe9, 0x58, 0x7f, 0x73, 0x7c, 0x27, 0x1f, 0x11, 0xea, 0x7f, 0x93, 0x15, 0xc6, 0x89, 0x48, 0xff,
- 0x9e, 0x01, 0x25, 0xcf, 0xf7, 0x98, 0xee, 0xec, 0xa9, 0x79, 0x69, 0xa2, 0x62, 0x4d, 0x2b, 0xaa,
- 0xbc, 0x28, 0xc1, 0x4b, 0xb5, 0x94, 0x7e, 0x3c, 0x80, 0x87, 0x98, 0x08, 0xd1, 0x0a, 0x3d, 0x73,
- 0x46, 0xe8, 0xc9, 0xf0, 0xac, 0x90, 0x13, 0x38, 0xe8, 0x75, 0x40, 0x94, 0x84, 0x0f, 0x3c, 0x87,
- 0x6c, 0x38, 0x4e, 0xd0, 0xf3, 0x99, 0xb8, 0x8c, 0x88, 0xee, 0x3b, 0xb4, 0x97, 0x36, 0x4e, 0x48,
- 0xe0, 0x21, 0xa3, 0x78, 0x3b, 0xa4, 0xaf, 0x33, 0x20, 0xdd, 0x0e, 0x9d, 0xbc, 0xd2, 0x40, 0xeb,
- 0x50, 0xe4, 0xad, 0xd1, 0x7d, 0xc2, 0x1e, 0x06, 0xe1, 0x81, 0x59, 0x5c, 0x35, 0xae, 0xe6, 0xe3,
- 0x2b, 0x96, 0x7b, 0x31, 0x0b, 0x27, 0xe5, 0xac, 0x5f, 0xe5, 0xa0, 0xa0, 0x03, 0x17, 0x5a, 0x83,
- 0x5c, 0xb7, 0x65, 0x53, 0x15, 0x90, 0x2e, 0xeb, 0x86, 0x88, 0x13, 0x8f, 0xa3, 0x04, 0x2c, 0x9e,
- 0x71, 0x24, 0x87, 0x1e, 0xa6, 0x12, 0x61, 0x66, 0xa2, 0x2b, 0x83, 0x64, 0xb4, 0x7b, 0x66, 0x1e,
- 0x3c, 0xe5, 0x55, 0x20, 0xba, 0xc2, 0xbb, 0x44, 0xb7, 0x56, 0x97, 0x07, 0x38, 0xd1, 0xe2, 0xb9,
- 0xb5, 0x3a, 0x8e, 0x78, 0xbc, 0x86, 0x10, 0x0f, 0xd4, 0x9c, 0x9d, 0xa8, 0x86, 0x10, 0x4a, 0xe3,
- 0xa9, 0x88, 0x57, 0x8a, 0xa5, 0x6e, 0xe4, 0xc9, 0x3b, 0x3f, 0x11, 0xf6, 0x66, 0xce, 0x20, 0xec,
- 0xcd, 0xe9, 0xfb, 0x3e, 0x11, 0xe9, 0x62, 0xed, 0xe8, 0x67, 0x06, 0x2c, 0x38, 0xe9, 0xfb, 0x3e,
- 0x42, 0xcd, 0xfc, 0x44, 0xd7, 0x48, 0x03, 0xf7, 0x87, 0xda, 0x39, 0x16, 0xaa, 0x83, 0x40, 0xf8,
- 0x24, 0x36, 0xba, 0x05, 0xf9, 0x6f, 0x07, 0xb4, 0xda, 0xb6, 0x29, 0x35, 0x0b, 0xa9, 0xba, 0x3f,
- 0xff, 0xd5, 0x37, 0x1b, 0x82, 0x7e, 0x7c, 0xb8, 0x52, 0xac, 0x07, 0xae, 0x7a, 0xc5, 0x7a, 0x80,
- 0xf5, 0x63, 0x03, 0x20, 0xee, 0xd3, 0xf5, 0x55, 0x9c, 0x71, 0xaa, 0xab, 0xb8, 0xcc, 0x73, 0x5d,
- 0x31, 0xaf, 0x40, 0x8e, 0x84, 0x61, 0x10, 0xca, 0x1b, 0xbc, 0x02, 0xf7, 0x95, 0x2d, 0x4e, 0xc0,
- 0x11, 0xdd, 0xfa, 0xe3, 0x14, 0x4c, 0x37, 0x88, 0x13, 0x12, 0x76, 0x2e, 0xe5, 0xd0, 0x67, 0xa0,
- 0xe0, 0x75, 0x3a, 0x3d, 0x66, 0xef, 0xb5, 0x89, 0x70, 0xfd, 0x7c, 0xe4, 0x06, 0x35, 0x45, 0xc4,
- 0x31, 0x1f, 0x85, 0x30, 0x25, 0x26, 0x17, 0x9d, 0xcb, 0xd7, 0xc6, 0xdc, 0xf8, 0xc8, 0xda, 0xf2,
- 0xa6, 0xcd, 0xec, 0x2d, 0x9f, 0x85, 0x7d, 0x9d, 0xef, 0xa7, 0x38, 0xe9, 0x27, 0x7f, 0x5d, 0xc9,
- 0x55, 0xfa, 0x8c, 0x50, 0x2c, 0xb0, 0xd0, 0xf7, 0x0d, 0x00, 0xca, 0x42, 0xcf, 0x6f, 0x72, 0xae,
- 0xac, 0x8d, 0x77, 0x26, 0x83, 0x6e, 0x68, 0x7d, 0xd1, 0x04, 0xf4, 0x12, 0xc5, 0x0c, 0x9c, 0x00,
- 0x45, 0x65, 0x59, 0x56, 0x65, 0x53, 0x71, 0x57, 0x95, 0x55, 0x10, 0x69, 0x8d, 0x0b, 0xaa, 0xa5,
- 0x2f, 0x41, 0x41, 0x2b, 0x47, 0x2f, 0x40, 0xf6, 0x80, 0xf4, 0xa3, 0x08, 0x88, 0xf9, 0x23, 0xba,
- 0x04, 0xb9, 0x07, 0x76, 0xbb, 0x17, 0x5d, 0x4a, 0xcd, 0xe2, 0xe8, 0xe5, 0x66, 0xe6, 0x86, 0xb1,
- 0xf4, 0x2a, 0xcc, 0x0f, 0xcc, 0xed, 0x59, 0xc3, 0x0b, 0x89, 0xe1, 0xd6, 0xc7, 0x06, 0xc8, 0xc9,
- 0x9c, 0x4b, 0x49, 0xb0, 0x97, 0x2e, 0x09, 0x5e, 0x9d, 0x68, 0x93, 0x46, 0x54, 0x05, 0x7f, 0xca,
- 0xc0, 0x8c, 0xcc, 0x77, 0xe7, 0x72, 0x5e, 0xdc, 0x54, 0xfb, 0x50, 0x19, 0xdb, 0x44, 0x61, 0xc1,
- 0xc8, 0x16, 0xa2, 0x3d, 0xd0, 0x42, 0x6c, 0x4e, 0x88, 0xf3, 0xf4, 0x36, 0xe2, 0xc8, 0x80, 0xa2,
- 0x94, 0x3c, 0x17, 0xbf, 0x71, 0xd2, 0x7e, 0x73, 0x7b, 0x32, 0x63, 0x47, 0x38, 0xce, 0xef, 0x62,
- 0x23, 0x4f, 0xf9, 0x0f, 0xcd, 0xf8, 0x41, 0x5f, 0x25, 0x94, 0xec, 0xc8, 0x84, 0x22, 0x6b, 0x31,
- 0xf1, 0x5f, 0x67, 0x2e, 0xfd, 0xf7, 0xe8, 0x7d, 0x49, 0xc7, 0x5a, 0xc2, 0xfa, 0x45, 0x51, 0xcf,
- 0x5d, 0x94, 0xc3, 0x4d, 0x75, 0x55, 0x6d, 0x4c, 0xd4, 0xb0, 0x27, 0x96, 0x63, 0xc4, 0xff, 0xce,
- 0xdf, 0x85, 0x3c, 0x25, 0x6d, 0xe2, 0xb0, 0x20, 0x94, 0x9b, 0x53, 0x9f, 0xdc, 0xe3, 0xcb, 0x0d,
- 0xa9, 0x32, 0x0a, 0xbe, 0xda, 0x70, 0x45, 0xc6, 0x1a, 0x13, 0xad, 0x41, 0xc1, 0x69, 0xf7, 0x28,
- 0x23, 0x61, 0xad, 0x2e, 0xa3, 0xaf, 0xbe, 0x59, 0xa8, 0x2a, 0x06, 0x8e, 0x65, 0x50, 0x19, 0x40,
- 0xbf, 0x50, 0x13, 0x89, 0x9b, 0x9e, 0x92, 0x28, 0xfb, 0x34, 0x15, 0x27, 0x24, 0xd0, 0x9a, 0x8c,
- 0xec, 0xd1, 0xdf, 0x7b, 0xff, 0x37, 0x10, 0xd9, 0xd5, 0xa2, 0x27, 0x7a, 0xe5, 0x6b, 0x50, 0x24,
- 0xef, 0x32, 0x12, 0xfa, 0x76, 0x9b, 0x23, 0xe4, 0x04, 0xc2, 0x3c, 0x2f, 0x89, 0xb7, 0x62, 0x32,
- 0x4e, 0xca, 0xa0, 0x5d, 0x98, 0xa7, 0x84, 0x52, 0x2f, 0xf0, 0x37, 0xf6, 0xf7, 0x79, 0x57, 0xd1,
- 0x17, 0xd5, 0x5a, 0xa1, 0xf2, 0x69, 0x09, 0x37, 0xdf, 0x48, 0xb3, 0x8f, 0x05, 0x29, 0xaa, 0xdf,
- 0x25, 0x09, 0x0f, 0xaa, 0x40, 0xb7, 0xa1, 0xd4, 0x4e, 0xde, 0xf4, 0xd7, 0x65, 0x57, 0xa0, 0xfb,
- 0x99, 0xd4, 0xff, 0x00, 0x75, 0x3c, 0x20, 0x8d, 0xbe, 0x0e, 0x66, 0x92, 0xd2, 0x08, 0x7a, 0xa1,
- 0x43, 0xb0, 0xed, 0x37, 0x49, 0xf4, 0x79, 0x41, 0xa1, 0xf2, 0xd2, 0xd1, 0xe1, 0x8a, 0xb9, 0x3d,
- 0x42, 0x06, 0x8f, 0x1c, 0x8d, 0x1e, 0xc2, 0xa2, 0x32, 0x7f, 0x37, 0xb4, 0xf7, 0xf7, 0x3d, 0xa7,
- 0x1e, 0xb4, 0x3d, 0xa7, 0x2f, 0x7a, 0x88, 0x42, 0x65, 0x43, 0x4e, 0x70, 0x71, 0x6b, 0x98, 0xd0,
- 0xf1, 0xe1, 0xca, 0xaa, 0xb4, 0x7d, 0x28, 0x5f, 0x6c, 0xc5, 0x70, 0xfd, 0x1c, 0xd8, 0xf3, 0x87,
- 0x01, 0xbf, 0x98, 0x06, 0xae, 0xf9, 0x4f, 0x07, 0x1e, 0xca, 0x8f, 0x80, 0x87, 0xea, 0x47, 0x3b,
- 0x70, 0xb1, 0x45, 0xec, 0x36, 0x6b, 0x55, 0x5b, 0xc4, 0x39, 0x50, 0x07, 0xd8, 0x9c, 0x15, 0x07,
- 0x5b, 0x39, 0xd5, 0xc5, 0x7b, 0x27, 0x45, 0xf0, 0xb0, 0x71, 0xe8, 0x97, 0x06, 0x2c, 0x0e, 0x6c,
- 0x77, 0xf4, 0x0d, 0x8c, 0x59, 0x9a, 0xe8, 0x53, 0x83, 0xc6, 0x30, 0x9d, 0x95, 0xcb, 0x7c, 0x49,
- 0x86, 0xb2, 0xf0, 0xf0, 0x59, 0xa0, 0x9b, 0x00, 0x5e, 0xf7, 0xae, 0xdd, 0xf1, 0xda, 0x1e, 0xa1,
- 0xe6, 0x45, 0xe1, 0x2c, 0x4b, 0xfc, 0x90, 0xd5, 0xea, 0x8a, 0xca, 0x03, 0xa3, 0x7c, 0xeb, 0xe3,
- 0x84, 0x34, 0xda, 0x86, 0x92, 0x7c, 0xeb, 0xcb, 0xcd, 0x59, 0x10, 0x9b, 0xf3, 0x09, 0xd1, 0x82,
- 0xd7, 0x93, 0x9c, 0xe3, 0x13, 0x14, 0x3c, 0x30, 0x16, 0x55, 0x61, 0x21, 0xe9, 0x86, 0x51, 0x3b,
- 0xb0, 0x28, 0x14, 0x2e, 0xf2, 0x56, 0x62, 0x7b, 0x90, 0x89, 0x4f, 0xca, 0x2f, 0xdd, 0x82, 0xb9,
- 0x54, 0x44, 0x7a, 0xae, 0x92, 0xeb, 0x83, 0x0c, 0x1f, 0x9d, 0xc8, 0xb2, 0xe8, 0x07, 0x06, 0xcc,
- 0x26, 0x41, 0x64, 0x0a, 0xad, 0x9d, 0xc1, 0xdf, 0x79, 0x32, 0x8f, 0xeb, 0x6f, 0x76, 0x92, 0x3c,
- 0x9c, 0x02, 0x45, 0xbd, 0x21, 0x8d, 0xf4, 0xc6, 0xb8, 0x59, 0xfc, 0xd4, 0x6d, 0xb4, 0xf5, 0xbe,
- 0x01, 0xc3, 0x7d, 0x09, 0x05, 0x90, 0x77, 0xe4, 0x07, 0x5d, 0x72, 0x45, 0xc6, 0xfe, 0x42, 0x24,
- 0xf5, 0x5d, 0x58, 0x74, 0x91, 0xaf, 0x68, 0x58, 0x83, 0x58, 0xff, 0x30, 0x20, 0x27, 0x6e, 0xdd,
- 0xd1, 0xcb, 0x89, 0xfd, 0xac, 0x14, 0xa5, 0x05, 0xd9, 0x37, 0x48, 0x3f, 0xda, 0xdc, 0x2b, 0xa9,
- 0xcd, 0x8d, 0x33, 0xe1, 0x5b, 0x9c, 0x28, 0xf7, 0x1a, 0xad, 0xc3, 0x34, 0xd9, 0xdf, 0x27, 0x0e,
- 0x93, 0x69, 0xe8, 0x65, 0x55, 0x4b, 0x6d, 0x09, 0x2a, 0x4f, 0x16, 0x02, 0x2c, 0x7a, 0xc5, 0x52,
- 0x98, 0xf7, 0xe8, 0xcc, 0xeb, 0x90, 0x0d, 0xd7, 0x25, 0xee, 0x99, 0x5c, 0x4d, 0x8a, 0xe6, 0x6c,
- 0x57, 0xa9, 0xc4, 0xb1, 0x76, 0xde, 0xd4, 0x5e, 0xe6, 0x41, 0xca, 0xdd, 0x0e, 0x1c, 0xbb, 0x1d,
- 0x15, 0xaf, 0x98, 0xec, 0x93, 0x90, 0xf8, 0x0e, 0x41, 0x57, 0x21, 0x6f, 0x77, 0xbd, 0xd7, 0xc2,
- 0xa0, 0xa7, 0x2e, 0x13, 0xc5, 0xba, 0x6d, 0xd4, 0x6b, 0x82, 0x86, 0x35, 0x97, 0x17, 0x2f, 0x07,
- 0x9e, 0xef, 0xca, 0xd5, 0xd0, 0xc5, 0xcb, 0x1b, 0x9e, 0xef, 0x62, 0xc1, 0xd1, 0xa5, 0x53, 0x76,
- 0x54, 0xe9, 0x64, 0xdd, 0x86, 0x62, 0xe2, 0x7b, 0x32, 0x9e, 0xc6, 0x3b, 0xfc, 0xa1, 0x6e, 0xb3,
- 0xd6, 0x60, 0x1a, 0xdf, 0x51, 0x0c, 0x1c, 0xcb, 0x54, 0xbe, 0xf9, 0xe8, 0xc9, 0xf2, 0x85, 0x8f,
- 0x9e, 0x2c, 0x5f, 0x78, 0xfc, 0x64, 0xf9, 0xc2, 0x7b, 0x47, 0xcb, 0xc6, 0xa3, 0xa3, 0x65, 0xe3,
- 0xa3, 0xa3, 0x65, 0xe3, 0xf1, 0xd1, 0xb2, 0xf1, 0xf1, 0xd1, 0xb2, 0xf1, 0xf3, 0xbf, 0x2d, 0x5f,
- 0xf8, 0xc6, 0xfa, 0x58, 0x5f, 0x60, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0xea, 0x56, 0xb6, 0xbc,
- 0xb9, 0x29, 0x00, 0x00,
+ 0x15, 0x9e, 0xb6, 0xe3, 0xc4, 0x7e, 0x4e, 0x9c, 0x49, 0xcd, 0x64, 0xd5, 0x13, 0x76, 0x93, 0xd0,
+ 0x83, 0xd0, 0xf0, 0x67, 0x6b, 0x06, 0x02, 0xc3, 0xcc, 0xee, 0x30, 0xb1, 0x93, 0xd9, 0xf1, 0x6e,
+ 0x32, 0xdb, 0x94, 0xa3, 0x05, 0xc1, 0x81, 0xed, 0x74, 0x57, 0xec, 0xde, 0xd8, 0xdd, 0xa6, 0xab,
+ 0x9c, 0x59, 0x4b, 0x08, 0x16, 0x21, 0xd0, 0x02, 0x2b, 0xc1, 0x91, 0x0b, 0x17, 0x6e, 0x9c, 0xe1,
+ 0x82, 0x38, 0x23, 0x86, 0xdb, 0x72, 0x1b, 0x21, 0x14, 0x76, 0x82, 0xc4, 0x8d, 0x03, 0xe2, 0x44,
+ 0x90, 0x10, 0xaa, 0xea, 0xea, 0xea, 0x6e, 0xc7, 0x9e, 0xc9, 0xd8, 0x91, 0xa2, 0x3d, 0xb9, 0xfb,
+ 0xbd, 0x57, 0xef, 0xab, 0x57, 0xf5, 0xea, 0xfd, 0x94, 0x1b, 0x36, 0x9b, 0x2e, 0x6b, 0xf5, 0x76,
+ 0xcb, 0xb6, 0xdf, 0xa9, 0xd8, 0x6e, 0xdb, 0xed, 0xa9, 0x9f, 0xee, 0x7e, 0xb3, 0xb2, 0x7f, 0x93,
+ 0x56, 0x68, 0xdb, 0xed, 0x88, 0x07, 0xab, 0xeb, 0x56, 0x6c, 0x3f, 0x20, 0x95, 0x83, 0xeb, 0x95,
+ 0x26, 0xf1, 0x48, 0x60, 0x31, 0xe2, 0x94, 0xbb, 0x81, 0xcf, 0x7c, 0xb4, 0x16, 0xab, 0x29, 0x87,
+ 0xe3, 0xa3, 0x9f, 0xee, 0x7e, 0xb3, 0xbc, 0x7f, 0x93, 0x96, 0xb9, 0x1a, 0xf1, 0x60, 0x75, 0xdd,
+ 0x32, 0x57, 0x53, 0x3e, 0xb8, 0xbe, 0x74, 0xef, 0xb9, 0xd0, 0x69, 0xa5, 0x43, 0x98, 0x35, 0x04,
+ 0x7e, 0xe9, 0x73, 0x09, 0x3d, 0x4d, 0xbf, 0xe9, 0x57, 0x04, 0x79, 0xb7, 0xb7, 0x27, 0xde, 0xc4,
+ 0x8b, 0x78, 0x92, 0xe2, 0x5c, 0x61, 0xd9, 0xf5, 0xb9, 0xce, 0x8e, 0x65, 0xb7, 0x5c, 0x8f, 0x04,
+ 0x7d, 0x81, 0x18, 0xf4, 0x3c, 0xe6, 0x76, 0xc8, 0x09, 0xfd, 0x5f, 0x7c, 0xd6, 0x00, 0x6a, 0xb7,
+ 0x48, 0xc7, 0x1a, 0x1c, 0x67, 0x6c, 0x41, 0xa9, 0xd6, 0x76, 0x89, 0xc7, 0xea, 0x66, 0xcd, 0xf7,
+ 0xf6, 0xdc, 0x26, 0xba, 0x05, 0x25, 0x3e, 0xc0, 0xef, 0xb1, 0x06, 0xb1, 0x7d, 0xcf, 0xa1, 0xba,
+ 0xb6, 0xaa, 0x5d, 0xcb, 0x55, 0xd1, 0xd1, 0xe1, 0x4a, 0x69, 0x27, 0xc5, 0xc1, 0x03, 0x92, 0xc6,
+ 0xef, 0x33, 0x50, 0xa8, 0xf9, 0x1e, 0xb3, 0x38, 0x3e, 0x5a, 0x85, 0x29, 0xcf, 0xea, 0x10, 0x31,
+ 0xbe, 0x50, 0x9d, 0x7d, 0x74, 0xb8, 0x72, 0xe1, 0xe8, 0x70, 0x65, 0xea, 0x81, 0xd5, 0x21, 0x58,
+ 0x70, 0xd0, 0x55, 0xc8, 0xb9, 0x1d, 0xab, 0x49, 0xf4, 0x8c, 0x10, 0x99, 0x93, 0x22, 0xb9, 0x3a,
+ 0x27, 0xe2, 0x90, 0x87, 0x5c, 0xc8, 0x75, 0xfd, 0x80, 0x51, 0x7d, 0x7a, 0x35, 0x7b, 0xad, 0x78,
+ 0x63, 0xa3, 0x3c, 0xd6, 0x4e, 0x96, 0xd5, 0xbc, 0x4c, 0x3f, 0x60, 0x31, 0x14, 0x7f, 0xa3, 0x38,
+ 0x44, 0x40, 0xdf, 0x81, 0xd9, 0x03, 0xbf, 0xdd, 0xeb, 0x90, 0x6d, 0xbf, 0xe7, 0x31, 0xaa, 0x17,
+ 0x04, 0x62, 0x75, 0x4c, 0xc4, 0x37, 0x63, 0x55, 0xd5, 0xcb, 0x12, 0x6f, 0x36, 0x41, 0xa4, 0x38,
+ 0x85, 0x66, 0xfc, 0x4f, 0x83, 0xb9, 0xd4, 0x2c, 0x4f, 0xb1, 0x82, 0x9f, 0x85, 0x7c, 0xcb, 0xa7,
+ 0x8c, 0x4b, 0x8b, 0x45, 0xcc, 0x55, 0x2f, 0x4a, 0xa9, 0xfc, 0x7d, 0x49, 0xc7, 0x4a, 0x02, 0xdd,
+ 0x86, 0x39, 0x3b, 0x09, 0xa0, 0x67, 0xc5, 0x90, 0x45, 0x39, 0x24, 0x8d, 0x8e, 0xd3, 0xb2, 0xe8,
+ 0x26, 0xe4, 0x85, 0xcf, 0xd8, 0x7e, 0x5b, 0x9f, 0x12, 0x13, 0x7a, 0x31, 0x82, 0x32, 0x25, 0xfd,
+ 0x38, 0xf1, 0x8c, 0x95, 0x34, 0xfa, 0x24, 0x4c, 0xf3, 0x29, 0xd4, 0x4d, 0x3d, 0x27, 0xc6, 0x95,
+ 0xe4, 0xb8, 0xe9, 0xfb, 0x82, 0x8a, 0x25, 0xd7, 0xf8, 0xa1, 0x06, 0x25, 0x35, 0x85, 0x06, 0xb3,
+ 0x18, 0x41, 0x14, 0x66, 0x82, 0x9e, 0xe7, 0xb9, 0x5e, 0x53, 0x98, 0x57, 0xbc, 0xb1, 0x35, 0xe9,
+ 0xf6, 0x0b, 0xbd, 0x38, 0xd4, 0x59, 0x2d, 0x1e, 0x1d, 0xae, 0xcc, 0xc8, 0x17, 0x1c, 0x21, 0x19,
+ 0x3f, 0xd2, 0x60, 0x71, 0xa8, 0x3c, 0xea, 0x40, 0x81, 0x32, 0x2b, 0x60, 0xc4, 0x59, 0x67, 0x62,
+ 0x57, 0x8a, 0x37, 0x5e, 0x7e, 0xbe, 0x09, 0xd1, 0x32, 0x0f, 0x11, 0x7c, 0x46, 0xfc, 0x2c, 0x55,
+ 0x17, 0xe4, 0x52, 0x14, 0x1a, 0x91, 0x5a, 0x1c, 0x23, 0x18, 0xbf, 0xd5, 0x60, 0x3e, 0x35, 0x91,
+ 0x1e, 0x45, 0x6f, 0x43, 0x8e, 0xf2, 0x29, 0xc9, 0xf5, 0xd8, 0x3c, 0x93, 0xf5, 0x88, 0xcf, 0x43,
+ 0x68, 0x6e, 0x08, 0x81, 0xd6, 0xa0, 0xa8, 0x7c, 0xa0, 0xbe, 0xa1, 0xe7, 0xc5, 0xee, 0x5d, 0x92,
+ 0xa2, 0xc5, 0x5a, 0xcc, 0xc2, 0x49, 0x39, 0xe3, 0x6b, 0x30, 0xbf, 0xe9, 0x39, 0x5d, 0xdf, 0xf5,
+ 0xd8, 0xba, 0xe3, 0x04, 0x84, 0x52, 0xb4, 0x04, 0x19, 0xb7, 0x2b, 0xfd, 0x18, 0xa4, 0x82, 0x4c,
+ 0xdd, 0xc4, 0x19, 0xb7, 0x8b, 0xae, 0x41, 0xde, 0xf3, 0x1d, 0xc2, 0xbd, 0x5a, 0x3a, 0xd6, 0x2c,
+ 0x77, 0xaa, 0x07, 0x92, 0x86, 0x15, 0xd7, 0x78, 0x5f, 0x83, 0xd9, 0x48, 0xf3, 0x29, 0x0f, 0xc8,
+ 0x2a, 0x4c, 0x75, 0xe3, 0xc3, 0xa1, 0x24, 0x84, 0x83, 0x0b, 0x4e, 0xca, 0xaf, 0xb3, 0xcf, 0xe3,
+ 0xd7, 0xc6, 0xbf, 0x35, 0x28, 0x45, 0xd3, 0x69, 0xf4, 0x76, 0x29, 0x61, 0xe8, 0x21, 0x14, 0xac,
+ 0xd0, 0x64, 0xc2, 0x03, 0x27, 0x0f, 0x1f, 0xf7, 0xc6, 0xdc, 0xa1, 0x81, 0x25, 0x8c, 0x5d, 0x65,
+ 0x3d, 0x02, 0xc0, 0x31, 0x16, 0x6a, 0x45, 0x51, 0x32, 0x2b, 0x40, 0x6b, 0x13, 0x82, 0x8e, 0x0e,
+ 0x92, 0xc6, 0xbf, 0x34, 0x28, 0x44, 0x62, 0x14, 0x05, 0x90, 0xe7, 0x0e, 0xed, 0x58, 0xcc, 0x92,
+ 0x07, 0xa2, 0x3a, 0xee, 0x81, 0x78, 0x63, 0xf7, 0x6d, 0x62, 0xb3, 0x6d, 0xc2, 0xac, 0x2a, 0x92,
+ 0xc8, 0x10, 0xd3, 0xb0, 0xc2, 0x41, 0x5d, 0x98, 0xa1, 0x62, 0xb9, 0xa9, 0x9e, 0x11, 0xd6, 0x6e,
+ 0x4e, 0x68, 0x6d, 0xb8, 0x79, 0xd5, 0x79, 0x89, 0x3a, 0x13, 0xbe, 0x53, 0x1c, 0xc1, 0x18, 0xff,
+ 0xd0, 0x60, 0x4e, 0xd9, 0xbc, 0xe5, 0x52, 0x86, 0xbc, 0x13, 0x76, 0xdf, 0x1d, 0xd7, 0x6e, 0xae,
+ 0x4f, 0x58, 0xad, 0x42, 0x77, 0x44, 0x49, 0xd8, 0x4c, 0x20, 0xe7, 0x32, 0xd2, 0x89, 0x2c, 0xbe,
+ 0x3b, 0xa1, 0xc5, 0x34, 0x91, 0x6c, 0xb9, 0x5a, 0x1c, 0x6a, 0x37, 0xfe, 0xa8, 0xc1, 0xa5, 0x2d,
+ 0xdf, 0x72, 0xaa, 0x56, 0xdb, 0xf2, 0x6c, 0x12, 0xd4, 0xbd, 0xe6, 0x33, 0xcf, 0xaf, 0xcc, 0x41,
+ 0xe2, 0x20, 0x86, 0x89, 0x3c, 0x95, 0x83, 0x3c, 0x71, 0x86, 0x23, 0x09, 0xb4, 0x17, 0x39, 0xea,
+ 0x94, 0x30, 0x64, 0x7d, 0x4c, 0x43, 0xb8, 0x4b, 0x86, 0x11, 0x71, 0x84, 0x9b, 0xfe, 0x54, 0x03,
+ 0x94, 0xb4, 0x44, 0x86, 0xcf, 0x1e, 0xcc, 0xb8, 0xa1, 0x4d, 0xf2, 0x78, 0xbe, 0x36, 0xe6, 0x04,
+ 0x86, 0xac, 0x52, 0xec, 0x40, 0x92, 0x80, 0x23, 0x2c, 0xe3, 0x7b, 0x50, 0xe0, 0x41, 0x89, 0x76,
+ 0x2d, 0x9b, 0x9c, 0xc7, 0x99, 0x11, 0x1e, 0xac, 0x66, 0xf0, 0x51, 0xf6, 0x60, 0x65, 0xc4, 0x08,
+ 0x0f, 0x7e, 0x94, 0x81, 0x29, 0x9e, 0x3a, 0xce, 0x25, 0x32, 0x59, 0x30, 0x45, 0xbb, 0xc4, 0x96,
+ 0xb9, 0xf9, 0x2b, 0xe3, 0x9a, 0xe8, 0x3b, 0xa4, 0xd1, 0x25, 0x76, 0x9c, 0xae, 0xf8, 0x1b, 0x16,
+ 0xaa, 0x91, 0x0b, 0xd3, 0x54, 0xb8, 0xb2, 0x48, 0x56, 0xe3, 0x1f, 0x20, 0x01, 0x12, 0x1e, 0x20,
+ 0x55, 0x8f, 0x85, 0xef, 0x58, 0x02, 0x18, 0x1d, 0x28, 0x72, 0xa9, 0x28, 0x87, 0x7f, 0x1e, 0xa6,
+ 0x58, 0xbf, 0x1b, 0x25, 0xdb, 0x95, 0x68, 0x6e, 0x3b, 0xfd, 0x2e, 0x39, 0x3e, 0x5c, 0x99, 0x4f,
+ 0x88, 0x72, 0x12, 0x16, 0xc2, 0xe8, 0x53, 0x30, 0x23, 0x93, 0x94, 0x8c, 0x0d, 0xea, 0x8c, 0x48,
+ 0x59, 0x1c, 0xf1, 0x8d, 0x5f, 0x73, 0x17, 0xf5, 0x1d, 0x52, 0xf3, 0x3d, 0xc7, 0x65, 0xae, 0xef,
+ 0xa1, 0xb5, 0x14, 0xe2, 0xc7, 0x07, 0x10, 0x17, 0x52, 0xc2, 0x09, 0xcc, 0x2f, 0xab, 0x25, 0xca,
+ 0xa4, 0x06, 0x4a, 0xfb, 0xf8, 0x64, 0xd5, 0xb0, 0xb4, 0xc9, 0xbc, 0x54, 0x0d, 0x88, 0x45, 0x7d,
+ 0x6f, 0xb0, 0x54, 0xc5, 0x82, 0x8a, 0x25, 0xd7, 0xf8, 0xab, 0x06, 0xa2, 0x40, 0x39, 0x97, 0x93,
+ 0xf4, 0x56, 0xfa, 0x24, 0xdd, 0x9e, 0xc0, 0x03, 0x46, 0x1c, 0xa2, 0xff, 0x48, 0xf3, 0xb8, 0xdf,
+ 0xf1, 0x2d, 0xec, 0xfa, 0x4e, 0xad, 0xbe, 0x81, 0xe5, 0x46, 0xa8, 0x2d, 0x34, 0x43, 0x32, 0x8e,
+ 0xf8, 0xbc, 0x94, 0x93, 0x8f, 0x54, 0x9f, 0x59, 0xcd, 0x46, 0xa5, 0x9c, 0x94, 0xa3, 0x58, 0x71,
+ 0xd1, 0x0d, 0x80, 0x6e, 0xe0, 0x1f, 0xb8, 0x8e, 0xa8, 0x2c, 0xc3, 0xba, 0x4b, 0x9d, 0x2d, 0x53,
+ 0x71, 0x70, 0x42, 0x0a, 0x39, 0x30, 0xcd, 0x6b, 0x4c, 0x46, 0xf5, 0x9c, 0x30, 0xfc, 0xe5, 0x31,
+ 0x0d, 0xdf, 0xe1, 0x4a, 0xe2, 0xad, 0x15, 0xaf, 0x14, 0x4b, 0xdd, 0xc6, 0x7f, 0x35, 0x80, 0xf8,
+ 0x70, 0xa0, 0x77, 0x00, 0xec, 0xc8, 0x59, 0xa2, 0xa4, 0xb5, 0x31, 0xc1, 0x8a, 0x2b, 0xcf, 0x8b,
+ 0xcd, 0x55, 0x24, 0x8a, 0x13, 0x58, 0x88, 0x26, 0x6b, 0xc9, 0xdc, 0x44, 0xad, 0x68, 0xe2, 0x6c,
+ 0x3e, 0xbd, 0x8e, 0x34, 0xfe, 0x90, 0x81, 0xac, 0xe9, 0x3b, 0xe7, 0x12, 0x3d, 0xdf, 0x4a, 0x45,
+ 0xcf, 0x3b, 0x63, 0x57, 0x06, 0xce, 0xc8, 0xe0, 0xd9, 0x1a, 0x08, 0x9e, 0x77, 0x27, 0xc0, 0x78,
+ 0x7a, 0xec, 0x7c, 0x9c, 0x85, 0x59, 0xee, 0xf6, 0x2a, 0x96, 0x7d, 0x21, 0x15, 0xcb, 0x56, 0x07,
+ 0x62, 0xd9, 0xc5, 0xa4, 0xec, 0xd9, 0x84, 0xb2, 0x3e, 0xcc, 0xb5, 0x2d, 0xca, 0xcc, 0xc0, 0xdf,
+ 0x25, 0xbc, 0xd7, 0x94, 0x26, 0x4f, 0xd6, 0xaf, 0xaa, 0xab, 0x82, 0xad, 0xa4, 0x6a, 0x9c, 0x46,
+ 0x42, 0xef, 0x69, 0x80, 0x38, 0x65, 0x27, 0xb0, 0x3c, 0x1a, 0x9a, 0xe4, 0xca, 0xe6, 0x6e, 0xd2,
+ 0x09, 0x2c, 0xc9, 0x09, 0xa0, 0xad, 0x13, 0xfa, 0xf1, 0x10, 0xcc, 0xd3, 0x06, 0x74, 0x1e, 0xe4,
+ 0x3a, 0x84, 0x52, 0xab, 0x49, 0xf4, 0xe9, 0x74, 0x90, 0xdb, 0x0e, 0xc9, 0x38, 0xe2, 0x1b, 0x57,
+ 0x21, 0x67, 0xfa, 0x4e, 0xdd, 0x7c, 0x5a, 0x51, 0x6c, 0xfc, 0x45, 0x03, 0x1e, 0x1e, 0xcf, 0x25,
+ 0x3f, 0x7c, 0x2b, 0x9d, 0x1f, 0x6e, 0x8d, 0xef, 0xe4, 0x23, 0xd2, 0xc3, 0x6f, 0xb2, 0xc2, 0x38,
+ 0x91, 0x1d, 0xde, 0xd5, 0xa0, 0xe4, 0x7a, 0x2e, 0x53, 0xb7, 0x01, 0x54, 0xbf, 0x3c, 0x51, 0x81,
+ 0xa7, 0x14, 0x55, 0x5f, 0x90, 0xe0, 0xa5, 0x7a, 0x4a, 0x3f, 0x1e, 0xc0, 0x43, 0x4c, 0x84, 0xe8,
+ 0x08, 0x3d, 0x73, 0x46, 0xe8, 0xc9, 0xf0, 0x1c, 0x21, 0x27, 0x70, 0xd0, 0x6b, 0x80, 0x28, 0x09,
+ 0x0e, 0x5c, 0x9b, 0xac, 0xdb, 0xb6, 0xdf, 0xf3, 0x98, 0xb8, 0xc0, 0x08, 0xef, 0x48, 0x94, 0x97,
+ 0x36, 0x4e, 0x48, 0xe0, 0x21, 0xa3, 0x78, 0x0b, 0xa5, 0xae, 0x40, 0x20, 0xdd, 0x42, 0x9d, 0xbc,
+ 0x06, 0x41, 0x6b, 0x50, 0xe4, 0xed, 0xd4, 0x03, 0xc2, 0x1e, 0xfa, 0xc1, 0xbe, 0x5e, 0x5c, 0xd5,
+ 0xae, 0xe5, 0xe3, 0x6b, 0x99, 0xfb, 0x31, 0x0b, 0x27, 0xe5, 0x8c, 0x5f, 0xe5, 0xa0, 0xa0, 0x02,
+ 0x17, 0xaa, 0x40, 0xae, 0xdb, 0xb2, 0x68, 0x14, 0x90, 0xae, 0xa8, 0x26, 0x8a, 0x13, 0x8f, 0xc3,
+ 0xa4, 0x2d, 0x9e, 0x71, 0x28, 0x87, 0x1e, 0xa6, 0x12, 0x61, 0x66, 0xa2, 0x6b, 0x86, 0x64, 0xb4,
+ 0x7b, 0x66, 0x1e, 0x3c, 0xe5, 0xf5, 0x21, 0xba, 0xca, 0x3b, 0x4b, 0xa7, 0x6e, 0xca, 0x03, 0x9c,
+ 0x68, 0x0b, 0x9d, 0xba, 0x89, 0x43, 0x1e, 0xaf, 0x21, 0xc4, 0x03, 0xd5, 0x67, 0x27, 0xaa, 0x21,
+ 0x84, 0xd2, 0x78, 0x2a, 0xe2, 0x95, 0x62, 0xa9, 0x1b, 0xb9, 0xf2, 0x9e, 0x50, 0x84, 0xbd, 0x99,
+ 0x33, 0x08, 0x7b, 0x73, 0xea, 0x8e, 0x50, 0x44, 0xba, 0x58, 0x3b, 0xfa, 0x99, 0x06, 0x0b, 0x76,
+ 0xfa, 0x8e, 0x90, 0x50, 0x3d, 0x3f, 0xd1, 0xd5, 0xd3, 0xc0, 0x9d, 0xa3, 0x72, 0x8e, 0x85, 0xda,
+ 0x20, 0x10, 0x3e, 0x89, 0x8d, 0x6e, 0x43, 0xfe, 0xdb, 0x3e, 0xad, 0xb5, 0x2d, 0x4a, 0xf5, 0x42,
+ 0xaa, 0x57, 0xc8, 0x7f, 0xf5, 0x8d, 0x86, 0xa0, 0x1f, 0x1f, 0xae, 0x14, 0x4d, 0xdf, 0x89, 0x5e,
+ 0xb1, 0x1a, 0x60, 0xfc, 0x58, 0x03, 0x88, 0x7b, 0x7b, 0x75, 0x7d, 0xa7, 0x9d, 0xea, 0xfa, 0x2e,
+ 0xf3, 0x5c, 0xd7, 0xd2, 0x2b, 0x90, 0x23, 0x41, 0xe0, 0x07, 0xb2, 0xfa, 0x2c, 0x70, 0x5f, 0xd9,
+ 0xe4, 0x04, 0x1c, 0xd2, 0x8d, 0x3f, 0x4d, 0xc1, 0x74, 0x83, 0xd8, 0x01, 0x61, 0xe7, 0x52, 0x0e,
+ 0x7d, 0x06, 0x0a, 0x6e, 0xa7, 0xd3, 0x63, 0xd6, 0x6e, 0x9b, 0x08, 0xd7, 0xcf, 0x87, 0x6e, 0x50,
+ 0x8f, 0x88, 0x38, 0xe6, 0xa3, 0x00, 0xa6, 0xc4, 0xe4, 0xc2, 0x73, 0xf9, 0xea, 0x98, 0x1b, 0x1f,
+ 0x5a, 0x5b, 0xde, 0xb0, 0x98, 0xb5, 0xe9, 0xb1, 0xa0, 0xaf, 0xf2, 0xfd, 0x14, 0x27, 0xfd, 0xe4,
+ 0x6f, 0x2b, 0xb9, 0x6a, 0x9f, 0x11, 0x8a, 0x05, 0x16, 0xfa, 0xbe, 0x06, 0x40, 0x59, 0xe0, 0x7a,
+ 0x4d, 0xce, 0x95, 0xb5, 0xf1, 0xf6, 0x64, 0xd0, 0x0d, 0xa5, 0x2f, 0x9c, 0x80, 0x5a, 0xa2, 0x98,
+ 0x81, 0x13, 0xa0, 0xa8, 0x2c, 0xcb, 0xaa, 0x6c, 0x2a, 0xee, 0x46, 0x65, 0x15, 0x84, 0x5a, 0xe3,
+ 0x82, 0x6a, 0xe9, 0x4b, 0x50, 0x50, 0xca, 0xd1, 0x45, 0xc8, 0xee, 0x93, 0x7e, 0x18, 0x01, 0x31,
+ 0x7f, 0x44, 0x97, 0x21, 0x77, 0x60, 0xb5, 0x7b, 0xe1, 0x45, 0xd6, 0x2c, 0x0e, 0x5f, 0x6e, 0x65,
+ 0x6e, 0x6a, 0x4b, 0xaf, 0xc0, 0xfc, 0xc0, 0xdc, 0x9e, 0x35, 0xbc, 0x90, 0x18, 0x6e, 0x7c, 0xa8,
+ 0x81, 0x9c, 0xcc, 0xb9, 0x94, 0x04, 0xbb, 0xe9, 0x92, 0xe0, 0x95, 0x89, 0x36, 0x69, 0x44, 0x55,
+ 0xf0, 0xe7, 0x0c, 0xcc, 0xc8, 0x7c, 0x77, 0x2e, 0xe7, 0xc5, 0x49, 0xb5, 0x0f, 0xd5, 0xb1, 0x4d,
+ 0x14, 0x16, 0x8c, 0x6c, 0x21, 0xda, 0x03, 0x2d, 0xc4, 0xc6, 0x84, 0x38, 0x4f, 0x6f, 0x23, 0x8e,
+ 0x34, 0x28, 0x4a, 0xc9, 0x73, 0xf1, 0x1b, 0x3b, 0xed, 0x37, 0x77, 0x26, 0x33, 0x76, 0x84, 0xe3,
+ 0xfc, 0x2e, 0x36, 0xf2, 0x94, 0xff, 0xea, 0x8c, 0x1f, 0xf4, 0xa3, 0x84, 0x92, 0x1d, 0x99, 0x50,
+ 0x64, 0x2d, 0x26, 0xfe, 0x1f, 0xcd, 0xa5, 0xff, 0x52, 0x7d, 0x20, 0xe9, 0x58, 0x49, 0x18, 0xbf,
+ 0x28, 0xaa, 0xb9, 0x8b, 0x72, 0xb8, 0x19, 0x5d, 0x6f, 0x6b, 0x13, 0x35, 0xec, 0x89, 0xe5, 0x18,
+ 0xf1, 0x5f, 0xf5, 0x77, 0x21, 0x4f, 0x49, 0x9b, 0xd8, 0xcc, 0x0f, 0xe4, 0xe6, 0x98, 0x93, 0x7b,
+ 0x7c, 0xb9, 0x21, 0x55, 0x86, 0xc1, 0x57, 0x19, 0x1e, 0x91, 0xb1, 0xc2, 0x44, 0x15, 0x28, 0xd8,
+ 0xed, 0x1e, 0x65, 0x24, 0xa8, 0x9b, 0x32, 0xfa, 0xaa, 0x9b, 0x85, 0x5a, 0xc4, 0xc0, 0xb1, 0x0c,
+ 0x2a, 0x03, 0xa8, 0x17, 0xaa, 0x23, 0x71, 0x3b, 0x54, 0x12, 0x65, 0x9f, 0xa2, 0xe2, 0x84, 0x04,
+ 0xaa, 0xc8, 0xc8, 0x1e, 0xfe, 0x25, 0xf8, 0xb1, 0x81, 0xc8, 0x1e, 0x2d, 0x7a, 0xa2, 0x57, 0xbe,
+ 0x0e, 0x45, 0xf2, 0x0e, 0x23, 0x81, 0x67, 0xb5, 0x39, 0x42, 0x4e, 0x20, 0xcc, 0xf3, 0x92, 0x78,
+ 0x33, 0x26, 0xe3, 0xa4, 0x0c, 0xda, 0x81, 0x79, 0x4a, 0x28, 0x75, 0x7d, 0x6f, 0x7d, 0x6f, 0x8f,
+ 0x77, 0x15, 0x7d, 0x51, 0xad, 0x15, 0xaa, 0x9f, 0x96, 0x70, 0xf3, 0x8d, 0x34, 0xfb, 0x58, 0x90,
+ 0xc2, 0xfa, 0x5d, 0x92, 0xf0, 0xa0, 0x0a, 0x74, 0x07, 0x4a, 0xed, 0xe4, 0xbf, 0x03, 0xa6, 0xec,
+ 0x0a, 0x54, 0x3f, 0x93, 0xfa, 0xef, 0xc0, 0xc4, 0x03, 0xd2, 0xe8, 0xeb, 0xa0, 0x27, 0x29, 0x0d,
+ 0xbf, 0x17, 0xd8, 0x04, 0x5b, 0x5e, 0x93, 0x84, 0x9f, 0x24, 0x14, 0xaa, 0x2f, 0x1e, 0x1d, 0xae,
+ 0xe8, 0x5b, 0x23, 0x64, 0xf0, 0xc8, 0xd1, 0xe8, 0x21, 0x2c, 0x46, 0xe6, 0xef, 0x04, 0xd6, 0xde,
+ 0x9e, 0x6b, 0x9b, 0x7e, 0xdb, 0xb5, 0xfb, 0xa2, 0x87, 0x28, 0x54, 0xd7, 0xe5, 0x04, 0x17, 0x37,
+ 0x87, 0x09, 0x1d, 0x1f, 0xae, 0xac, 0x4a, 0xdb, 0x87, 0xf2, 0xc5, 0x56, 0x0c, 0xd7, 0xcf, 0x81,
+ 0x5d, 0x6f, 0x18, 0xf0, 0x0b, 0x69, 0xe0, 0xba, 0xf7, 0x74, 0xe0, 0xa1, 0xfc, 0x10, 0x78, 0xa8,
+ 0x7e, 0xb4, 0x0d, 0x97, 0x5a, 0xc4, 0x6a, 0xb3, 0x56, 0xad, 0x45, 0xec, 0xfd, 0xe8, 0x00, 0xeb,
+ 0xb3, 0xe2, 0x60, 0x47, 0x4e, 0x75, 0xe9, 0xfe, 0x49, 0x11, 0x3c, 0x6c, 0x1c, 0xfa, 0xa5, 0x06,
+ 0x8b, 0x03, 0xdb, 0x1d, 0x7e, 0x37, 0xa3, 0x97, 0x26, 0xfa, 0x3c, 0xa1, 0x31, 0x4c, 0x67, 0xf5,
+ 0x0a, 0x5f, 0x92, 0xa1, 0x2c, 0x3c, 0x7c, 0x16, 0xe8, 0x16, 0x80, 0xdb, 0xbd, 0x67, 0x75, 0xdc,
+ 0xb6, 0x4b, 0xa8, 0x7e, 0x49, 0x38, 0xcb, 0x12, 0x3f, 0x64, 0x75, 0x33, 0xa2, 0xf2, 0xc0, 0x28,
+ 0xdf, 0xfa, 0x38, 0x21, 0x8d, 0xb6, 0xa0, 0x24, 0xdf, 0xfa, 0x72, 0x73, 0x16, 0xc4, 0xe6, 0x7c,
+ 0x42, 0xb4, 0xe0, 0x66, 0x92, 0x73, 0x7c, 0x82, 0x82, 0x07, 0xc6, 0xa2, 0x1a, 0x2c, 0x24, 0xdd,
+ 0x30, 0x6c, 0x07, 0x16, 0x85, 0xc2, 0x45, 0xde, 0x4a, 0x6c, 0x0d, 0x32, 0xf1, 0x49, 0xf9, 0xa5,
+ 0xdb, 0x30, 0x97, 0x8a, 0x48, 0xcf, 0x55, 0x72, 0xbd, 0x9f, 0xe1, 0xa3, 0x13, 0x59, 0x16, 0xfd,
+ 0x40, 0x83, 0xd9, 0x24, 0x88, 0x4c, 0xa1, 0xf5, 0x33, 0xf8, 0x0b, 0x50, 0xe6, 0x71, 0xf5, 0x9d,
+ 0x4f, 0x92, 0x87, 0x53, 0xa0, 0xa8, 0x37, 0xa4, 0x91, 0x5e, 0x1f, 0x37, 0x8b, 0x9f, 0xba, 0x8d,
+ 0x36, 0xde, 0xd3, 0x60, 0xb8, 0x2f, 0x21, 0x1f, 0xf2, 0xb6, 0xfc, 0x08, 0x4c, 0xae, 0xc8, 0xd8,
+ 0x5f, 0x95, 0xa4, 0xbe, 0x25, 0x0b, 0x2f, 0xff, 0x23, 0x1a, 0x56, 0x20, 0xc6, 0x3f, 0x35, 0xc8,
+ 0x89, 0x5b, 0x77, 0xf4, 0x52, 0x62, 0x3f, 0xab, 0x45, 0x69, 0x41, 0xf6, 0x75, 0xd2, 0x0f, 0x37,
+ 0xf7, 0x6a, 0x6a, 0x73, 0xe3, 0x4c, 0xf8, 0x26, 0x27, 0xca, 0xbd, 0x46, 0x6b, 0x30, 0x4d, 0xf6,
+ 0xf6, 0x88, 0xcd, 0x64, 0x1a, 0x7a, 0x29, 0xaa, 0xa5, 0x36, 0x05, 0x95, 0x27, 0x0b, 0x01, 0x16,
+ 0xbe, 0x62, 0x29, 0xcc, 0x7b, 0x74, 0xe6, 0x76, 0xc8, 0xba, 0xe3, 0x10, 0xe7, 0x4c, 0xae, 0x26,
+ 0x45, 0x73, 0xb6, 0x13, 0xa9, 0xc4, 0xb1, 0x76, 0xde, 0xd4, 0x5e, 0xe1, 0x41, 0xca, 0xd9, 0xf2,
+ 0x6d, 0xab, 0x1d, 0x16, 0xaf, 0x98, 0xec, 0x91, 0x80, 0x78, 0x36, 0x41, 0xd7, 0x20, 0x6f, 0x75,
+ 0xdd, 0x57, 0x03, 0xbf, 0x17, 0x5d, 0x26, 0x8a, 0x75, 0x5b, 0x37, 0xeb, 0x82, 0x86, 0x15, 0x97,
+ 0x17, 0x2f, 0xfb, 0xae, 0xe7, 0xc8, 0xd5, 0x50, 0xc5, 0xcb, 0xeb, 0xae, 0xe7, 0x60, 0xc1, 0x51,
+ 0xa5, 0x53, 0x76, 0x54, 0xe9, 0x64, 0xdc, 0x81, 0x62, 0xe2, 0x1b, 0x34, 0x9e, 0xc6, 0x3b, 0xfc,
+ 0xc1, 0xb4, 0x58, 0x6b, 0x30, 0x8d, 0x6f, 0x47, 0x0c, 0x1c, 0xcb, 0x54, 0xbf, 0xf9, 0xe8, 0xc9,
+ 0xf2, 0x85, 0x0f, 0x9e, 0x2c, 0x5f, 0x78, 0xfc, 0x64, 0xf9, 0xc2, 0xbb, 0x47, 0xcb, 0xda, 0xa3,
+ 0xa3, 0x65, 0xed, 0x83, 0xa3, 0x65, 0xed, 0xf1, 0xd1, 0xb2, 0xf6, 0xe1, 0xd1, 0xb2, 0xf6, 0xf3,
+ 0xbf, 0x2f, 0x5f, 0xf8, 0xc6, 0xda, 0x58, 0x5f, 0x6d, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xaa,
+ 0x33, 0x1f, 0xcc, 0xed, 0x29, 0x00, 0x00,
}
func (m *ClientIPConfig) Marshal() (dAtA []byte, err error) {
@@ -2175,6 +2176,11 @@ func (m *NodeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
}
}
+ i -= len(m.ProviderID)
+ copy(dAtA[i:], m.ProviderID)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.ProviderID)))
+ i--
+ dAtA[i] = 0x1a
i -= len(m.PodCIDR)
copy(dAtA[i:], m.PodCIDR)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.PodCIDR)))
@@ -3597,6 +3603,8 @@ func (m *NodeSpec) Size() (n int) {
_ = l
l = len(m.PodCIDR)
n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.ProviderID)
+ n += 1 + l + sovGenerated(uint64(l))
if len(m.Taints) > 0 {
for _, e := range m.Taints {
l = e.Size()
@@ -4307,6 +4315,7 @@ func (this *NodeSpec) String() string {
repeatedStringForTaints += "}"
s := strings.Join([]string{`&NodeSpec{`,
`PodCIDR:` + fmt.Sprintf("%v", this.PodCIDR) + `,`,
+ `ProviderID:` + fmt.Sprintf("%v", this.ProviderID) + `,`,
`Taints:` + repeatedStringForTaints + `,`,
`PodCIDRs:` + fmt.Sprintf("%v", this.PodCIDRs) + `,`,
`}`,
@@ -6994,6 +7003,38 @@ func (m *NodeSpec) Unmarshal(dAtA []byte) error {
}
m.PodCIDR = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ProviderID", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ProviderID = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
case 5:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Taints", wireType)
diff --git a/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/generated.proto b/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/generated.proto
index 6317031d59..3b9f1c67d5 100644
--- a/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/generated.proto
+++ b/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/generated.proto
@@ -335,6 +335,10 @@ message NodeSpec {
// +patchStrategy=merge
repeated string podCIDRs = 7;
+ // ID of the node assigned by the cloud provider in the format: ://
+ // +optional
+ optional string providerID = 3;
+
// If specified, the node's taints.
// +optional
repeated Taint taints = 5;
diff --git a/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/types.go b/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/types.go
index 09ce067b0c..42ec7a306e 100644
--- a/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/types.go
+++ b/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/types.go
@@ -965,6 +965,10 @@ type NodeSpec struct {
// +patchStrategy=merge
PodCIDRs []string `json:"podCIDRs,omitempty" protobuf:"bytes,7,opt,name=podCIDRs" patchStrategy:"merge"`
+ // ID of the node assigned by the cloud provider in the format: ://
+ // +optional
+ ProviderID string `json:"providerID,omitempty" protobuf:"bytes,3,opt,name=providerID"`
+
// If specified, the node's taints.
// +optional
Taints []Taint `json:"taints,omitempty" protobuf:"bytes,5,opt,name=taints"`
diff --git a/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/zz_generated.deepequal.go b/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/zz_generated.deepequal.go
index 16ec2d5af1..d17fb78c52 100644
--- a/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/zz_generated.deepequal.go
+++ b/vendor/github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1/zz_generated.deepequal.go
@@ -565,6 +565,9 @@ func (in *NodeSpec) DeepEqual(other *NodeSpec) bool {
}
}
+ if in.ProviderID != other.ProviderID {
+ return false
+ }
if ((in.Taints != nil) && (other.Taints != nil)) || ((in.Taints == nil) != (other.Taints == nil)) {
in, other := &in.Taints, &other.Taints
if other == nil {
diff --git a/vendor/github.com/cilium/cilium/pkg/k8s/utils/listwatcher.go b/vendor/github.com/cilium/cilium/pkg/k8s/utils/listwatcher.go
index 5e84a3f847..12d71835ff 100644
--- a/vendor/github.com/cilium/cilium/pkg/k8s/utils/listwatcher.go
+++ b/vendor/github.com/cilium/cilium/pkg/k8s/utils/listwatcher.go
@@ -67,3 +67,10 @@ func ListerWatcherWithModifier(lw cache.ListerWatcher, optsModifier func(*metav1
optsModifier: optsModifier,
}
}
+
+func ListerWatcherWithModifiers(lw cache.ListerWatcher, opts ...func(*metav1.ListOptions)) cache.ListerWatcher {
+ for _, opt := range opts {
+ lw = ListerWatcherWithModifier(lw, opt)
+ }
+ return lw
+}
diff --git a/vendor/github.com/cilium/cilium/pkg/logging/logfields/logfields.go b/vendor/github.com/cilium/cilium/pkg/logging/logfields/logfields.go
index 0d5c19b5e8..c4796bf951 100644
--- a/vendor/github.com/cilium/cilium/pkg/logging/logfields/logfields.go
+++ b/vendor/github.com/cilium/cilium/pkg/logging/logfields/logfields.go
@@ -47,6 +47,9 @@ const (
// Labels are any label, they may not be relevant to the security identity.
Labels = "labels"
+ // Source is the label or node information source
+ Source = "source"
+
// Controller is the name of the controller to log it.
Controller = "controller"
@@ -254,6 +257,9 @@ const (
// ClusterName is the name of the cluster
ClusterName = "clusterName"
+ // ClusterID is the ID of the cluster
+ ClusterID = "clusterID"
+
// AddrCluster is a pair of IP address and ClusterID
AddrCluster = "addrCluster"
@@ -362,6 +368,16 @@ const (
// Tunnel is the tunnel name
Tunnel = "tunnel"
+ // TunnelPeer is the tunnel peer address
+ TunnelPeer = "tunnelPeer"
+
+ // ConflictingTunnelPeer is the address of a tunnel peer which conflicts
+ // with TunnelPeer
+ ConflictingTunnelPeer = "conflictingTunnelPeer"
+
+ // Type is the address type
+ Type = "type"
+
// Selector is a selector of any sort: endpoint, CIDR, toFQDNs
Selector = "Selector"
@@ -542,6 +558,10 @@ const (
// Key is the identity of the encryption key
Key = "key"
+ // ConflictingKey is the identity of the encryption key which conflicts with
+ // Key
+ ConflictingKey = "conflictingKey"
+
// URL represents a Uniform Resource Locator.
URL = "url"
@@ -694,4 +714,16 @@ const (
// CIDRGroupRef is a references to a CiliumCIDRGroup object.
CIDRGroupRef = "cidrGroupRef"
+
+ // Workers represents the number of workers.
+ Workers = "workers"
+
+ // Event identifies the type of an event.
+ Event = "event"
+
+ // Prefix identifies a given prefix.
+ Prefix = "prefix"
+
+ // Value identifies a generic value (e.g., of a key/value pair).
+ Value = "value"
)
diff --git a/vendor/github.com/cilium/cilium/pkg/metrics/metrics.go b/vendor/github.com/cilium/cilium/pkg/metrics/metrics.go
index e590acaf90..971e74156d 100644
--- a/vendor/github.com/cilium/cilium/pkg/metrics/metrics.go
+++ b/vendor/github.com/cilium/cilium/pkg/metrics/metrics.go
@@ -68,9 +68,12 @@ const (
// SubsystemAPILimiter is the subsystem to scope metrics related to the API limiter package.
SubsystemAPILimiter = "api_limiter"
- // Namespace is used to scope metrics from cilium. It is prepended to metric
- // names and separated with a '_'
- Namespace = "cilium"
+ // CiliumAgentNamespace is used to scope metrics from the Cilium Agent
+ CiliumAgentNamespace = "cilium"
+
+ // CiliumClusterMeshAPIServerNamespace is used to scope metrics from the
+ // Cilium Cluster Mesh API Server
+ CiliumClusterMeshAPIServerNamespace = "cilium_clustermesh_apiserver"
// LabelError indicates the type of error (string)
LabelError = "error"
@@ -220,6 +223,10 @@ const (
)
var (
+ // Namespace is used to scope metrics from cilium. It is prepended to metric
+ // names and separated with a '_'
+ Namespace = CiliumAgentNamespace
+
// goCustomCollectorsRX tracks enabled go runtime metrics.
goCustomCollectorsRX = regexp.MustCompile(`^/sched/latencies:seconds`)
@@ -463,6 +470,14 @@ var (
// KVStoreQuorumErrors records the number of kvstore quorum errors
KVStoreQuorumErrors = NoOpCounterVec
+ // KVStoreSyncQueueSize records the number of elements queued for
+ // synchronization in the kvstore.
+ KVStoreSyncQueueSize = NoOpGaugeVec
+
+ // KVStoreInitialSyncCompleted records whether the initial synchronization
+ // from/to the kvstore has completed.
+ KVStoreInitialSyncCompleted = NoOpGaugeVec
+
// FQDNGarbageCollectorCleanedTotal is the number of domains cleaned by the
// GC job.
FQDNGarbageCollectorCleanedTotal = NoOpCounter
@@ -605,6 +620,8 @@ type Configuration struct {
KVStoreOperationsDurationEnabled bool
KVStoreEventsQueueDurationEnabled bool
KVStoreQuorumErrorsEnabled bool
+ KVStoreSyncQueueSizeEnabled bool
+ KVStoreInitialSyncCompletedEnabled bool
FQDNGarbageCollectorCleanedTotalEnabled bool
FQDNActiveNames bool
FQDNActiveIPs bool
@@ -679,6 +696,8 @@ func DefaultMetrics() map[string]struct{} {
Namespace + "_" + SubsystemKVStore + "_operations_duration_seconds": {},
Namespace + "_" + SubsystemKVStore + "_events_queue_seconds": {},
Namespace + "_" + SubsystemKVStore + "_quorum_errors_total": {},
+ Namespace + "_" + SubsystemKVStore + "_sync_queue_size": {},
+ Namespace + "_" + SubsystemKVStore + "_initial_sync_completed": {},
Namespace + "_" + SubsystemIPCache + "_errors_total": {},
Namespace + "_" + SubsystemFQDN + "_gc_deletions_total": {},
Namespace + "_" + SubsystemBPF + "_map_ops_total": {},
@@ -1238,7 +1257,7 @@ func CreateConfiguration(metricsEnabled []string) (Configuration, []prometheus.C
Namespace: Namespace,
Subsystem: SubsystemKVStore,
Name: "events_queue_seconds",
- Help: "Duration in seconds of time received event was blocked before it could be queued",
+ Help: "Seconds waited before a received event was queued",
Buckets: []float64{.002, .005, .01, .015, .025, .05, .1, .25, .5, .75, 1},
}, []string{LabelScope, LabelAction})
@@ -1256,6 +1275,28 @@ func CreateConfiguration(metricsEnabled []string) (Configuration, []prometheus.C
collectors = append(collectors, KVStoreQuorumErrors)
c.KVStoreQuorumErrorsEnabled = true
+ case Namespace + "_" + SubsystemKVStore + "_sync_queue_size":
+ KVStoreSyncQueueSize = prometheus.NewGaugeVec(prometheus.GaugeOpts{
+ Namespace: Namespace,
+ Subsystem: SubsystemKVStore,
+ Name: "sync_queue_size",
+ Help: "Number of elements queued for synchronization in the kvstore",
+ }, []string{LabelScope, LabelSourceCluster})
+
+ collectors = append(collectors, KVStoreSyncQueueSize)
+ c.KVStoreSyncQueueSizeEnabled = true
+
+ case Namespace + "_" + SubsystemKVStore + "_initial_sync_completed":
+ KVStoreInitialSyncCompleted = prometheus.NewGaugeVec(prometheus.GaugeOpts{
+ Namespace: Namespace,
+ Subsystem: SubsystemKVStore,
+ Name: "initial_sync_completed",
+ Help: "Whether the initial synchronization from/to the kvstore has completed",
+ }, []string{LabelScope, LabelSourceCluster, LabelAction})
+
+ collectors = append(collectors, KVStoreInitialSyncCompleted)
+ c.KVStoreInitialSyncCompletedEnabled = true
+
case Namespace + "_" + SubsystemIPCache + "_errors_total":
IPCacheErrorsTotal = prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: Namespace,
diff --git a/vendor/github.com/cilium/cilium/pkg/option/config.go b/vendor/github.com/cilium/cilium/pkg/option/config.go
index bbff94f6a4..ba6c7ea6c8 100644
--- a/vendor/github.com/cilium/cilium/pkg/option/config.go
+++ b/vendor/github.com/cilium/cilium/pkg/option/config.go
@@ -169,6 +169,10 @@ const (
// ProxyMaxConnectionDuration specifies the max_connection_duration setting for the proxy in seconds
ProxyMaxConnectionDuration = "proxy-max-connection-duration-seconds"
+ // ProxyIdleTimeout specifies the idle_timeout setting (in seconds), which applies
+ // for the connection from proxy to upstream cluster
+ ProxyIdleTimeout = "proxy-idle-timeout-seconds"
+
// FixedIdentityMapping is the key-value for the fixed identity mapping
// which allows to use reserved label for fixed identities
FixedIdentityMapping = "fixed-identity-mapping"
@@ -311,6 +315,11 @@ const (
// conflicting marks.
EnableIdentityMark = "enable-identity-mark"
+ // EnableHighScaleIPcache enables the special ipcache mode for high scale
+ // clusters. The ipcache content will be reduced to the strict minimum and
+ // traffic will be encapsulated to carry security identities.
+ EnableHighScaleIPcache = "enable-high-scale-ipcache"
+
// AddressScopeMax controls the maximum address scope for addresses to be
// considered local ones with HOST_ID in the ipcache
AddressScopeMax = "local-max-addr-scope"
@@ -428,6 +437,9 @@ const (
// PrometheusServeAddr IP:Port on which to serve prometheus metrics (pass ":Port" to bind on all interfaces, "" is off)
PrometheusServeAddr = "prometheus-serve-addr"
+ // ExternalEnvoyProxy defines whether the Envoy is deployed externally in form of a DaemonSet or not.
+ ExternalEnvoyProxy = "external-envoy-proxy"
+
// CMDRef is the path to cmdref output directory
CMDRef = "cmdref"
@@ -539,12 +551,13 @@ const (
// ClusterIDName is the name of the ClusterID option
ClusterIDName = "cluster-id"
- // ClusterMeshConfigName is the name of the ClusterMeshConfig option
- ClusterMeshConfigName = "clustermesh-config"
-
// CNIChainingMode configures which CNI plugin Cilium is chained with.
CNIChainingMode = "cni-chaining-mode"
+ // CNIChainingTarget is the name of a CNI network in to which we should
+ // insert our plugin configuration
+ CNIChainingTarget = "cni-chaining-target"
+
// AuthMapEntriesMin defines the minimum auth map limit.
AuthMapEntriesMin = 1 << 8
@@ -697,12 +710,6 @@ const (
// IPv6MCastDevice is the name of the option to select IPv6 multicast device
IPv6MCastDevice = "ipv6-mcast-device"
- // EnableMonitor is the name of the option to enable the monitor socket
- EnableMonitorName = "enable-monitor"
-
- // MonitorQueueSizeName is the name of the option MonitorQueueSize
- MonitorQueueSizeName = "monitor-queue-size"
-
// FQDNRejectResponseCode is the name for the option for dns-proxy reject response code
FQDNRejectResponseCode = "tofqdns-dns-reject-response-code"
@@ -835,6 +842,9 @@ const (
// IPAM is the IPAM method to use
IPAM = "ipam"
+ // IPAMMultiPoolPreAllocation defines the pre-allocation value for each IPAM pool
+ IPAMMultiPoolPreAllocation = "ipam-multi-pool-pre-allocation"
+
// XDPModeNative for loading progs with XDPModeLinkDriver
XDPModeNative = "native"
@@ -1082,6 +1092,9 @@ const (
// EnableICMPRules enables ICMP-based rule support for Cilium Network Policies.
EnableICMPRules = "enable-icmp-rules"
+ // Use the CiliumInternalIPs (vs. NodeInternalIPs) for IPsec encapsulation.
+ UseCiliumInternalIPForIPsec = "use-cilium-internal-ip-for-ipsec"
+
// BypassIPAvailabilityUponRestore bypasses the IP availability error
// within IPAM upon endpoint restore and allows the use of the restored IP
// regardless of whether it's available in the pool.
@@ -1230,6 +1243,9 @@ const (
// EnableCiliumEndpointSlice enables the cilium endpoint slicing feature.
EnableCiliumEndpointSlice = "enable-cilium-endpoint-slice"
+
+ // EnableExternalWorkloads enables the support for external workloads.
+ EnableExternalWorkloads = "enable-external-workloads"
)
const (
@@ -1338,9 +1354,16 @@ func LogRegisteredOptions(vp *viper.Viper, entry *logrus.Entry) {
keys := vp.AllKeys()
sort.Strings(keys)
for _, k := range keys {
- v := vp.GetStringSlice(k)
- if len(v) > 0 {
- entry.Infof(" --%s='%s'", k, strings.Join(v, ","))
+ ss := vp.GetStringSlice(k)
+ if len(ss) == 0 {
+ sm := vp.GetStringMap(k)
+ for k, v := range sm {
+ ss = append(ss, fmt.Sprintf("%s=%s", k, v))
+ }
+ }
+
+ if len(ss) > 0 {
+ entry.Infof(" --%s='%s'", k, strings.Join(ss, ","))
} else {
entry.Infof(" --%s='%s'", k, vp.GetString(k))
}
@@ -1353,6 +1376,7 @@ type DaemonConfig struct {
BpfDir string // BPF template files directory
LibDir string // Cilium library files directory
RunDir string // Cilium runtime directory
+ ExternalEnvoyProxy bool // Whether Envoy is deployed as external DaemonSet or not
devicesMu lock.RWMutex // Protects devices
devices []string // bpf_host device
DirectRoutingDevice string // Direct routing device (used by BPF NodePort and BPF Host Routing)
@@ -1457,9 +1481,6 @@ type DaemonConfig struct {
// ClusterID is the unique identifier of the cluster
ClusterID uint32
- // ClusterMeshConfig is the path to the clustermesh configuration directory
- ClusterMeshConfig string
-
// CTMapEntriesGlobalTCP is the maximum number of conntrack entries
// allowed in each TCP CT table for IPv4/IPv6.
CTMapEntriesGlobalTCP int
@@ -1477,9 +1498,6 @@ type DaemonConfig struct {
CTMapEntriesTimeoutSYN time.Duration
CTMapEntriesTimeoutFIN time.Duration
- // EnableMonitor enables the monitor unix domain socket server
- EnableMonitor bool
-
// MonitorAggregationInterval configures the interval between monitor
// messages when monitor aggregation is enabled.
MonitorAggregationInterval time.Duration
@@ -1512,10 +1530,6 @@ type DaemonConfig struct {
// allowed in the BPF rev nat table
SockRevNatEntries int
- // EgressGatewayPolicyMapEntries is the maximum number of entries
- // allowed in the BPF egress gateway policy map.
- EgressGatewayPolicyMapEntries int
-
// DisableCiliumEndpointCRD disables the use of CiliumEndpoint CRD
DisableCiliumEndpointCRD bool
@@ -1576,6 +1590,10 @@ type DaemonConfig struct {
// ProxyMaxConnectionDuration specifies the max_connection_duration setting for the proxy
ProxyMaxConnectionDuration time.Duration
+ // ProxyIdleTimeout specifies the idle_timeout setting (in seconds), which applies
+ // for the connection from proxy to upstream cluster
+ ProxyIdleTimeout time.Duration
+
// EnvoyLogPath specifies where to store the Envoy proxy logs when Envoy
// runs in the same container as Cilium.
EnvoyLogPath string
@@ -1664,9 +1682,6 @@ type DaemonConfig struct {
// the label selector in the above field.
NodeEncryptionOptOutLabelsString string
- // MonitorQueueSize is the size of the monitor event queue
- MonitorQueueSize int
-
// CLI options
BPFRoot string
@@ -1895,9 +1910,6 @@ type DaemonConfig struct {
// Specifies wheather to annotate the kubernetes nodes or not
AnnotateK8sNode bool
- // RunMonitorAgent indicates whether to run the monitor agent
- RunMonitorAgent bool
-
// EnableNodePort enables k8s NodePort service implementation in BPF
EnableNodePort bool
@@ -2024,6 +2036,11 @@ type DaemonConfig struct {
// conflicting marks.
EnableIdentityMark bool
+ // EnableHighScaleIPcache enables the special ipcache mode for high scale
+ // clusters. The ipcache content will be reduced to the strict minimum and
+ // traffic will be encapsulated to carry security identities.
+ EnableHighScaleIPcache bool
+
// KernelHz is the HZ rate the kernel is operating in
KernelHz int
@@ -2040,6 +2057,9 @@ type DaemonConfig struct {
// IPAM is the IPAM method to use
IPAM string
+ // IPAMMultiPoolPreAllocation defines the pre-allocation value for each IPAM pool
+ IPAMMultiPoolPreAllocation map[string]string
+
// AutoCreateCiliumNodeResource enables automatic creation of a
// CiliumNode resource for the local node
AutoCreateCiliumNodeResource bool
@@ -2279,6 +2299,9 @@ type DaemonConfig struct {
// EnableICMPRules enables ICMP-based rule support for Cilium Network Policies.
EnableICMPRules bool
+ // Use the CiliumInternalIPs (vs. NodeInternalIPs) for IPsec encapsulation.
+ UseCiliumInternalIPForIPsec bool
+
// BypassIPAvailabilityUponRestore bypasses the IP availability error
// within IPAM upon endpoint restore and allows the use of the restored IP
// regardless of whether it's available in the pool.
@@ -2371,6 +2394,7 @@ var (
K8sEnableK8sEndpointSlice: defaults.K8sEnableEndpointSlice,
AllocatorListTimeout: defaults.AllocatorListTimeout,
EnableICMPRules: defaults.EnableICMPRules,
+ UseCiliumInternalIPForIPsec: defaults.UseCiliumInternalIPForIPsec,
K8sEnableLeasesFallbackDiscovery: defaults.K8sEnableLeasesFallbackDiscovery,
APIRateLimit: make(map[string]string),
@@ -2500,13 +2524,14 @@ func (c *DaemonConfig) TunnelDevice() string {
// takes care of the MTU overhead. So no need to take it into account here.
// See encap_geneve_dsr_opt[4,6] in nodeport.h
func (c *DaemonConfig) TunnelExists() bool {
- return c.TunnelingEnabled() || c.EnableIPv4EgressGateway
+ return c.TunnelingEnabled() || c.EnableIPv4EgressGateway || c.EnableHighScaleIPcache
}
// AreDevicesRequired returns true if the agent needs to attach to the native
// devices to implement some features.
func (c *DaemonConfig) AreDevicesRequired() bool {
- return c.EnableNodePort || c.EnableHostFirewall || c.EnableBandwidthManager || c.EnableWireguard
+ return c.EnableNodePort || c.EnableHostFirewall || c.EnableBandwidthManager ||
+ c.EnableWireguard || c.EnableHighScaleIPcache
}
// MasqueradingEnabled returns true if either IPv4 or IPv6 masquerading is enabled.
@@ -2656,6 +2681,12 @@ func (c *DaemonConfig) DirectRoutingDeviceRequired() bool {
// BPF NodePort and BPF Host Routing are using the direct routing device now.
// When tunneling is enabled, node-to-node redirection will be done by tunneling.
BPFHostRoutingEnabled := !c.EnableHostLegacyRouting
+
+ // XDP needs IPV4_DIRECT_ROUTING when building tunnel headers:
+ if c.EnableNodePort && c.NodePortAcceleration != NodePortAccelerationDisabled {
+ return true
+ }
+
return (c.EnableNodePort || BPFHostRoutingEnabled || Config.EnableWireguard) && !c.TunnelingEnabled()
}
@@ -2896,7 +2927,6 @@ func (c *DaemonConfig) Populate(vp *viper.Viper) {
c.CGroupRoot = vp.GetString(CGroupRoot)
c.ClusterID = vp.GetUint32(ClusterIDName)
c.ClusterName = vp.GetString(ClusterName)
- c.ClusterMeshConfig = vp.GetString(ClusterMeshConfigName)
c.DatapathMode = vp.GetString(DatapathMode)
c.Debug = vp.GetBool(DebugArg)
c.DebugVerbose = vp.GetStringSlice(DebugVerbose)
@@ -3000,7 +3030,6 @@ func (c *DaemonConfig) Populate(vp *viper.Viper) {
c.EnableBPFClockProbe = vp.GetBool(EnableBPFClockProbe)
c.EnableIPMasqAgent = vp.GetBool(EnableIPMasqAgent)
c.EnableIPv4EgressGateway = vp.GetBool(EnableIPv4EgressGateway)
- c.EgressGatewayPolicyMapEntries = vp.GetInt(EgressGatewayPolicyMapEntriesName)
c.EnableEnvoyConfig = vp.GetBool(EnableEnvoyConfig)
c.EnableIngressController = vp.GetBool(EnableIngressController)
c.EnableGatewayAPI = vp.GetBool(EnableGatewayAPI)
@@ -3011,10 +3040,8 @@ func (c *DaemonConfig) Populate(vp *viper.Viper) {
c.IPTablesRandomFully = vp.GetBool(IPTablesRandomFully)
c.IPSecKeyFile = vp.GetString(IPSecKeyFileName)
c.IPsecKeyRotationDuration = vp.GetDuration(IPsecKeyRotationDuration)
- c.EnableMonitor = vp.GetBool(EnableMonitorName)
c.MonitorAggregation = vp.GetString(MonitorAggregationName)
c.MonitorAggregationInterval = vp.GetDuration(MonitorAggregationInterval)
- c.MonitorQueueSize = vp.GetInt(MonitorQueueSizeName)
c.MTU = vp.GetInt(MTUName)
c.PreAllocateMaps = vp.GetBool(PreAllocateMapsName)
c.PrependIptablesChains = vp.GetBool(PrependIptablesChainsName)
@@ -3025,9 +3052,11 @@ func (c *DaemonConfig) Populate(vp *viper.Viper) {
c.ProxyPrometheusPort = vp.GetInt(ProxyPrometheusPort)
c.ProxyMaxRequestsPerConnection = vp.GetInt(ProxyMaxRequestsPerConnection)
c.ProxyMaxConnectionDuration = time.Duration(vp.GetInt64(ProxyMaxConnectionDuration))
+ c.ProxyIdleTimeout = time.Duration(vp.GetInt64(ProxyIdleTimeout))
c.RestoreState = vp.GetBool(Restore)
c.RouteMetric = vp.GetInt(RouteMetric)
c.RunDir = vp.GetString(StateDir)
+ c.ExternalEnvoyProxy = vp.GetBool(ExternalEnvoyProxy)
c.SidecarIstioProxyImage = vp.GetString(SidecarIstioProxyImage)
c.UseSingleClusterRoute = vp.GetBool(SingleClusterRouteName)
c.SocketPath = vp.GetString(SocketPath)
@@ -3057,6 +3086,7 @@ func (c *DaemonConfig) Populate(vp *viper.Viper) {
c.BGPConfigPath = vp.GetString(BGPConfigPath)
c.ExternalClusterIP = vp.GetBool(ExternalClusterIPName)
c.EnableNat46X64Gateway = vp.GetBool(EnableNat46X64Gateway)
+ c.EnableHighScaleIPcache = vp.GetBool(EnableHighScaleIPcache)
c.EnableIPv4Masquerade = vp.GetBool(EnableIPv4Masquerade) && c.EnableIPv4
c.EnableIPv6Masquerade = vp.GetBool(EnableIPv6Masquerade) && c.EnableIPv6
c.EnableBPFMasquerade = vp.GetBool(EnableBPFMasquerade)
@@ -3103,20 +3133,19 @@ func (c *DaemonConfig) Populate(vp *viper.Viper) {
c.Tunnel = ""
if c.TunnelPort == 0 {
- switch c.TunnelProtocol {
- case TunnelDisabled:
- // tunnel might still be used by eg. DSR with Geneve dispatch or EgressGW
- if (c.EnableNodePort || c.KubeProxyReplacement == KubeProxyReplacementStrict) &&
- c.NodePortMode == NodePortModeDSR &&
- c.LoadBalancerDSRDispatch == DSRDispatchGeneve {
- c.TunnelPort = defaults.TunnelPortGeneve
- } else {
+ // manually pick port for native-routing and DSR with Geneve dispatch:
+ if !c.TunnelingEnabled() &&
+ (c.EnableNodePort || c.KubeProxyReplacement == KubeProxyReplacementStrict) &&
+ c.NodePortMode == NodePortModeDSR &&
+ c.LoadBalancerDSRDispatch == DSRDispatchGeneve {
+ c.TunnelPort = defaults.TunnelPortGeneve
+ } else {
+ switch c.TunnelProtocol {
+ case TunnelVXLAN:
c.TunnelPort = defaults.TunnelPortVXLAN
+ case TunnelGeneve:
+ c.TunnelPort = defaults.TunnelPortGeneve
}
- case TunnelVXLAN:
- c.TunnelPort = defaults.TunnelPortVXLAN
- case TunnelGeneve:
- c.TunnelPort = defaults.TunnelPortGeneve
}
}
@@ -3291,10 +3320,6 @@ func (c *DaemonConfig) Populate(vp *viper.Viper) {
c.EndpointStatus[option] = struct{}{}
}
- if c.MonitorQueueSize == 0 {
- c.MonitorQueueSize = getDefaultMonitorQueueSize(runtime.NumCPU())
- }
-
// Metrics Setup
metrics.ResetMetrics()
defaultMetrics := metrics.DefaultMetrics()
@@ -3353,6 +3378,11 @@ func (c *DaemonConfig) Populate(vp *viper.Viper) {
c.K8sRequireIPv6PodCIDR = true
}
}
+ if m, err := command.GetStringMapStringE(vp, IPAMMultiPoolPreAllocation); err != nil {
+ log.Fatalf("unable to parse %s: %s", IPAMMultiPoolPreAllocation, err)
+ } else {
+ c.IPAMMultiPoolPreAllocation = m
+ }
c.KubeProxyReplacementHealthzBindAddr = vp.GetString(KubeProxyReplacementHealthzBindAddr)
@@ -3397,6 +3427,7 @@ func (c *DaemonConfig) Populate(vp *viper.Viper) {
c.EndpointQueueSize = sanitizeIntParam(vp, EndpointQueueSize, defaults.EndpointQueueSize)
c.DisableCNPStatusUpdates = vp.GetBool(DisableCNPStatusUpdates)
c.EnableICMPRules = vp.GetBool(EnableICMPRules)
+ c.UseCiliumInternalIPForIPsec = vp.GetBool(UseCiliumInternalIPForIPsec)
c.BypassIPAvailabilityUponRestore = vp.GetBool(BypassIPAvailabilityUponRestore)
c.EnableK8sTerminatingEndpoint = vp.GetBool(EnableK8sTerminatingEndpoint)
c.EnableStaleCiliumEndpointCleanup = vp.GetBool(EnableStaleCiliumEndpointCleanup)
@@ -4096,7 +4127,7 @@ func EndpointStatusValuesMap() (values map[string]struct{}) {
// place.
func MightAutoDetectDevices() bool {
devices := Config.GetDevices()
- return ((Config.EnableHostFirewall || Config.EnableWireguard) && len(devices) == 0) ||
+ return ((Config.EnableHostFirewall || Config.EnableWireguard || Config.EnableHighScaleIPcache) && len(devices) == 0) ||
(Config.KubeProxyReplacement != KubeProxyReplacementDisabled &&
(len(devices) == 0 || Config.DirectRoutingDevice == ""))
}
diff --git a/vendor/github.com/cilium/cilium/pkg/policy/api/cidr.go b/vendor/github.com/cilium/cilium/pkg/policy/api/cidr.go
index 03eff267b2..5e70c3cd62 100644
--- a/vendor/github.com/cilium/cilium/pkg/policy/api/cidr.go
+++ b/vendor/github.com/cilium/cilium/pkg/policy/api/cidr.go
@@ -39,7 +39,7 @@ type CIDRRule struct {
// CIDR is a CIDR prefix / IP Block.
//
// +kubebuilder:validation:OneOf
- Cidr CIDR `json:"cidr"`
+ Cidr CIDR `json:"cidr,omitempty"`
// CIDRGroupRef is a reference to a CiliumCIDRGroup object.
// A CiliumCIDRGroup contains a list of CIDRs that the endpoint, subject to
diff --git a/vendor/github.com/cilium/cilium/pkg/slices/doc.go b/vendor/github.com/cilium/cilium/pkg/slices/doc.go
new file mode 100644
index 0000000000..b5bd209a8f
--- /dev/null
+++ b/vendor/github.com/cilium/cilium/pkg/slices/doc.go
@@ -0,0 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of Cilium
+
+// Package slices contains common utilities to work on slices of any type.
+package slices
diff --git a/vendor/github.com/cilium/cilium/pkg/slices/slices.go b/vendor/github.com/cilium/cilium/pkg/slices/slices.go
index 0b02fdc1e5..243a00819e 100644
--- a/vendor/github.com/cilium/cilium/pkg/slices/slices.go
+++ b/vendor/github.com/cilium/cilium/pkg/slices/slices.go
@@ -49,6 +49,29 @@ func Unique[S ~[]T, T comparable](s S) S {
return s[:last]
}
+// UniqueFunc deduplicates the elements in the input slice like Unique, but takes a
+// function to extract the comparable "key" to compare T. This is slower than Unique,
+// but can be used with non-comparable elements.
+func UniqueFunc[S ~[]T, T any, K comparable](s S, key func(i int) K) S {
+ if len(s) < 2 {
+ return s
+ }
+
+ last := 0
+
+ set := make(map[K]struct{}, len(s))
+ for i := 0; i < len(s); i++ {
+ if _, ok := set[key(i)]; ok {
+ continue
+ }
+ set[key(i)] = struct{}{}
+ s[last] = s[i]
+ last++
+ }
+
+ return s[:last]
+}
+
// SortedUnique sorts and dedup the input slice in place.
// It uses the < operator to compare the elements in the slice and thus requires
// the elements to satisfies contraints.Ordered.
@@ -80,3 +103,45 @@ func SortedUniqueFunc[S ~[]T, T any](
sort.Slice(s, less)
return slices.CompactFunc(s, eq)
}
+
+// Diff returns a slice of elements which is the difference of a and b.
+// The returned slice keeps the elements in the same order found in the "a" slice.
+// Both input slices are considered as sets, that is, all elements are considered as
+// unique when computing the difference.
+func Diff[S ~[]T, T comparable](a, b S) []T {
+ if len(a) == 0 {
+ return nil
+ }
+ if len(b) == 0 {
+ return a
+ }
+
+ var diff []T
+
+ setB := make(map[T]struct{}, len(b))
+ for _, v := range b {
+ setB[v] = struct{}{}
+ }
+
+ setA := make(map[T]struct{}, len(a))
+ for _, v := range a {
+ // v is in b, too
+ if _, ok := setB[v]; ok {
+ continue
+ }
+ // v has been already added to diff
+ if _, ok := setA[v]; ok {
+ continue
+ }
+ diff = append(diff, v)
+ setA[v] = struct{}{}
+ }
+ return diff
+}
+
+// SubsetOf returns a boolean that indicates if slice a is a subset of slice b.
+// In case it is not, the returned slice contains all the unique elements that are in a but not in b.
+func SubsetOf[S ~[]T, T comparable](a, b S) (bool, []T) {
+ d := Diff(a, b)
+ return len(d) == 0, d
+}
diff --git a/vendor/github.com/go-openapi/runtime/client/request.go b/vendor/github.com/go-openapi/runtime/client/request.go
index d7dc564e9a..4c00ed3a5a 100644
--- a/vendor/github.com/go-openapi/runtime/client/request.go
+++ b/vendor/github.com/go-openapi/runtime/client/request.go
@@ -161,15 +161,22 @@ func (r *request) buildHTTP(mediaType, basePath string, producers map[string]run
}()
for fn, f := range r.fileFields {
for _, fi := range f {
- // Need to read the data so that we can detect the content type
- buf := make([]byte, 512)
- size, err := fi.Read(buf)
- if err != nil {
- logClose(err, pw)
- return
+ var fileContentType string
+ if p, ok := fi.(interface {
+ ContentType() string
+ }); ok {
+ fileContentType = p.ContentType()
+ } else {
+ // Need to read the data so that we can detect the content type
+ buf := make([]byte, 512)
+ size, err := fi.Read(buf)
+ if err != nil {
+ logClose(err, pw)
+ return
+ }
+ fileContentType = http.DetectContentType(buf)
+ fi = runtime.NamedReader(fi.Name(), io.MultiReader(bytes.NewReader(buf[:size]), fi))
}
- fileContentType := http.DetectContentType(buf)
- newFi := runtime.NamedReader(fi.Name(), io.MultiReader(bytes.NewReader(buf[:size]), fi))
// Create the MIME headers for the new part
h := make(textproto.MIMEHeader)
@@ -183,7 +190,7 @@ func (r *request) buildHTTP(mediaType, basePath string, producers map[string]run
logClose(err, pw)
return
}
- if _, err := io.Copy(wrtr, newFi); err != nil {
+ if _, err := io.Copy(wrtr, fi); err != nil {
logClose(err, pw)
}
}
diff --git a/vendor/github.com/shirou/gopsutil/v3/mem/mem_linux.go b/vendor/github.com/shirou/gopsutil/v3/mem/mem_linux.go
index 9a5d693b1d..56fb1cc6c5 100644
--- a/vendor/github.com/shirou/gopsutil/v3/mem/mem_linux.go
+++ b/vendor/github.com/shirou/gopsutil/v3/mem/mem_linux.go
@@ -14,8 +14,9 @@ import (
"strconv"
"strings"
- "github.com/shirou/gopsutil/v3/internal/common"
"golang.org/x/sys/unix"
+
+ "github.com/shirou/gopsutil/v3/internal/common"
)
type VirtualMemoryExStat struct {
diff --git a/vendor/github.com/vishvananda/netlink/chain.go b/vendor/github.com/vishvananda/netlink/chain.go
new file mode 100644
index 0000000000..1d1c144e95
--- /dev/null
+++ b/vendor/github.com/vishvananda/netlink/chain.go
@@ -0,0 +1,22 @@
+package netlink
+
+import (
+ "fmt"
+)
+
+// Chain contains the attributes of a Chain
+type Chain struct {
+ Parent uint32
+ Chain uint32
+}
+
+func (c Chain) String() string {
+ return fmt.Sprintf("{Parent: %d, Chain: %d}", c.Parent, c.Chain)
+}
+
+func NewChain(parent uint32, chain uint32) Chain {
+ return Chain{
+ Parent: parent,
+ Chain: chain,
+ }
+}
diff --git a/vendor/github.com/vishvananda/netlink/chain_linux.go b/vendor/github.com/vishvananda/netlink/chain_linux.go
new file mode 100644
index 0000000000..d9f441613c
--- /dev/null
+++ b/vendor/github.com/vishvananda/netlink/chain_linux.go
@@ -0,0 +1,112 @@
+package netlink
+
+import (
+ "github.com/vishvananda/netlink/nl"
+ "golang.org/x/sys/unix"
+)
+
+// ChainDel will delete a chain from the system.
+func ChainDel(link Link, chain Chain) error {
+ // Equivalent to: `tc chain del $chain`
+ return pkgHandle.ChainDel(link, chain)
+}
+
+// ChainDel will delete a chain from the system.
+// Equivalent to: `tc chain del $chain`
+func (h *Handle) ChainDel(link Link, chain Chain) error {
+ return h.chainModify(unix.RTM_DELCHAIN, 0, link, chain)
+}
+
+// ChainAdd will add a chain to the system.
+// Equivalent to: `tc chain add`
+func ChainAdd(link Link, chain Chain) error {
+ return pkgHandle.ChainAdd(link, chain)
+}
+
+// ChainAdd will add a chain to the system.
+// Equivalent to: `tc chain add`
+func (h *Handle) ChainAdd(link Link, chain Chain) error {
+ return h.chainModify(
+ unix.RTM_NEWCHAIN,
+ unix.NLM_F_CREATE|unix.NLM_F_EXCL,
+ link,
+ chain)
+}
+
+func (h *Handle) chainModify(cmd, flags int, link Link, chain Chain) error {
+ req := h.newNetlinkRequest(cmd, flags|unix.NLM_F_ACK)
+ index := int32(0)
+ if link != nil {
+ base := link.Attrs()
+ h.ensureIndex(base)
+ index = int32(base.Index)
+ }
+ msg := &nl.TcMsg{
+ Family: nl.FAMILY_ALL,
+ Ifindex: index,
+ Parent: chain.Parent,
+ }
+ req.AddData(msg)
+ req.AddData(nl.NewRtAttr(nl.TCA_CHAIN, nl.Uint32Attr(chain.Chain)))
+
+ _, err := req.Execute(unix.NETLINK_ROUTE, 0)
+ return err
+}
+
+// ChainList gets a list of chains in the system.
+// Equivalent to: `tc chain list`.
+// The list can be filtered by link.
+func ChainList(link Link, parent uint32) ([]Chain, error) {
+ return pkgHandle.ChainList(link, parent)
+}
+
+// ChainList gets a list of chains in the system.
+// Equivalent to: `tc chain list`.
+// The list can be filtered by link.
+func (h *Handle) ChainList(link Link, parent uint32) ([]Chain, error) {
+ req := h.newNetlinkRequest(unix.RTM_GETCHAIN, unix.NLM_F_DUMP)
+ index := int32(0)
+ if link != nil {
+ base := link.Attrs()
+ h.ensureIndex(base)
+ index = int32(base.Index)
+ }
+ msg := &nl.TcMsg{
+ Family: nl.FAMILY_ALL,
+ Ifindex: index,
+ Parent: parent,
+ }
+ req.AddData(msg)
+
+ msgs, err := req.Execute(unix.NETLINK_ROUTE, unix.RTM_NEWCHAIN)
+ if err != nil {
+ return nil, err
+ }
+
+ var res []Chain
+ for _, m := range msgs {
+ msg := nl.DeserializeTcMsg(m)
+
+ attrs, err := nl.ParseRouteAttr(m[msg.Len():])
+ if err != nil {
+ return nil, err
+ }
+
+ // skip chains from other interfaces
+ if link != nil && msg.Ifindex != index {
+ continue
+ }
+
+ var chain Chain
+ for _, attr := range attrs {
+ switch attr.Attr.Type {
+ case nl.TCA_CHAIN:
+ chain.Chain = native.Uint32(attr.Value)
+ chain.Parent = parent
+ }
+ }
+ res = append(res, chain)
+ }
+
+ return res, nil
+}
diff --git a/vendor/github.com/vishvananda/netlink/conntrack_linux.go b/vendor/github.com/vishvananda/netlink/conntrack_linux.go
index 03ea1b98fc..67b92e2297 100644
--- a/vendor/github.com/vishvananda/netlink/conntrack_linux.go
+++ b/vendor/github.com/vishvananda/netlink/conntrack_linux.go
@@ -149,20 +149,26 @@ type ConntrackFlow struct {
TimeStart uint64
TimeStop uint64
TimeOut uint32
+ Labels []byte
}
func (s *ConntrackFlow) String() string {
// conntrack cmd output:
- // udp 17 src=127.0.0.1 dst=127.0.0.1 sport=4001 dport=1234 packets=5 bytes=532 [UNREPLIED] src=127.0.0.1 dst=127.0.0.1 sport=1234 dport=4001 packets=10 bytes=1078 mark=0
+ // udp 17 src=127.0.0.1 dst=127.0.0.1 sport=4001 dport=1234 packets=5 bytes=532 [UNREPLIED] src=127.0.0.1 dst=127.0.0.1 sport=1234 dport=4001 packets=10 bytes=1078 mark=0 labels=0x00000000050012ac4202010000000000
// start=2019-07-26 01:26:21.557800506 +0000 UTC stop=1970-01-01 00:00:00 +0000 UTC timeout=30(sec)
start := time.Unix(0, int64(s.TimeStart))
stop := time.Unix(0, int64(s.TimeStop))
timeout := int32(s.TimeOut)
- return fmt.Sprintf("%s\t%d src=%s dst=%s sport=%d dport=%d packets=%d bytes=%d\tsrc=%s dst=%s sport=%d dport=%d packets=%d bytes=%d mark=0x%x start=%v stop=%v timeout=%d(sec)",
+ res := fmt.Sprintf("%s\t%d src=%s dst=%s sport=%d dport=%d packets=%d bytes=%d\tsrc=%s dst=%s sport=%d dport=%d packets=%d bytes=%d mark=0x%x ",
nl.L4ProtoMap[s.Forward.Protocol], s.Forward.Protocol,
s.Forward.SrcIP.String(), s.Forward.DstIP.String(), s.Forward.SrcPort, s.Forward.DstPort, s.Forward.Packets, s.Forward.Bytes,
s.Reverse.SrcIP.String(), s.Reverse.DstIP.String(), s.Reverse.SrcPort, s.Reverse.DstPort, s.Reverse.Packets, s.Reverse.Bytes,
- s.Mark, start, stop, timeout)
+ s.Mark)
+ if len(s.Labels) > 0 {
+ res += fmt.Sprintf("labels=0x%x ", s.Labels)
+ }
+ res += fmt.Sprintf("start=%v stop=%v timeout=%d(sec)", start, stop, timeout)
+ return res
}
// This method parse the ip tuple structure
@@ -306,6 +312,12 @@ func parseConnectionMark(r *bytes.Reader) (mark uint32) {
return
}
+func parseConnectionLabels(r *bytes.Reader) (label []byte) {
+ label = make([]byte, 16) // netfilter defines 128 bit labels value
+ binary.Read(r, nl.NativeEndian(), &label)
+ return
+}
+
func parseRawData(data []byte) *ConntrackFlow {
s := &ConntrackFlow{}
// First there is the Nfgenmsg header
@@ -351,6 +363,8 @@ func parseRawData(data []byte) *ConntrackFlow {
switch t {
case nl.CTA_MARK:
s.Mark = parseConnectionMark(reader)
+ case nl.CTA_LABELS:
+ s.Labels = parseConnectionLabels(reader)
case nl.CTA_TIMEOUT:
s.TimeOut = parseTimeOut(reader)
case nl.CTA_STATUS, nl.CTA_USE, nl.CTA_ID:
@@ -406,6 +420,8 @@ const (
ConntrackReplyAnyIP // Match source or destination reply IP
ConntrackOrigSrcPort // --orig-port-src port Source port in original direction
ConntrackOrigDstPort // --orig-port-dst port Destination port in original direction
+ ConntrackMatchLabels // --label label1,label2 Labels used in entry
+ ConntrackUnmatchLabels // --label label1,label2 Labels not used in entry
ConntrackNatSrcIP = ConntrackReplySrcIP // deprecated use instead ConntrackReplySrcIP
ConntrackNatDstIP = ConntrackReplyDstIP // deprecated use instead ConntrackReplyDstIP
ConntrackNatAnyIP = ConntrackReplyAnyIP // deprecated use instead ConntrackReplyAnyIP
@@ -421,6 +437,7 @@ type ConntrackFilter struct {
ipNetFilter map[ConntrackFilterType]*net.IPNet
portFilter map[ConntrackFilterType]uint16
protoFilter uint8
+ labelFilter map[ConntrackFilterType][][]byte
}
// AddIPNet adds a IP subnet to the conntrack filter
@@ -474,10 +491,34 @@ func (f *ConntrackFilter) AddProtocol(proto uint8) error {
return nil
}
+// AddLabels adds the provided list (zero or more) of labels to the conntrack filter
+// ConntrackFilterType here can be either:
+// 1) ConntrackMatchLabels: This matches every flow that has a label value (len(flow.Labels) > 0)
+// against the list of provided labels. If `flow.Labels` contains ALL the provided labels
+// it is considered a match. This can be used when you want to match flows that contain
+// one or more labels.
+// 2) ConntrackUnmatchLabels: This matches every flow that has a label value (len(flow.Labels) > 0)
+// against the list of provided labels. If `flow.Labels` does NOT contain ALL the provided labels
+// it is considered a match. This can be used when you want to match flows that don't contain
+// one or more labels.
+func (f *ConntrackFilter) AddLabels(tp ConntrackFilterType, labels [][]byte) error {
+ if len(labels) == 0 {
+ return errors.New("Invalid length for provided labels")
+ }
+ if f.labelFilter == nil {
+ f.labelFilter = make(map[ConntrackFilterType][][]byte)
+ }
+ if _, ok := f.labelFilter[tp]; ok {
+ return errors.New("Filter attribute already present")
+ }
+ f.labelFilter[tp] = labels
+ return nil
+}
+
// MatchConntrackFlow applies the filter to the flow and returns true if the flow matches the filter
// false otherwise
func (f *ConntrackFilter) MatchConntrackFlow(flow *ConntrackFlow) bool {
- if len(f.ipNetFilter) == 0 && len(f.portFilter) == 0 && f.protoFilter == 0 {
+ if len(f.ipNetFilter) == 0 && len(f.portFilter) == 0 && f.protoFilter == 0 && len(f.labelFilter) == 0 {
// empty filter always not match
return false
}
@@ -531,6 +572,29 @@ func (f *ConntrackFilter) MatchConntrackFlow(flow *ConntrackFlow) bool {
}
}
+ // Label filter
+ if len(f.labelFilter) > 0 {
+ if len(flow.Labels) > 0 {
+ // --label label1,label2 in conn entry;
+ // every label passed should be contained in flow.Labels for a match to be true
+ if elem, found := f.labelFilter[ConntrackMatchLabels]; match && found {
+ for _, label := range elem {
+ match = match && (bytes.Contains(flow.Labels, label))
+ }
+ }
+ // --label label1,label2 in conn entry;
+ // every label passed should be not contained in flow.Labels for a match to be true
+ if elem, found := f.labelFilter[ConntrackUnmatchLabels]; match && found {
+ for _, label := range elem {
+ match = match && !(bytes.Contains(flow.Labels, label))
+ }
+ }
+ } else {
+ // flow doesn't contain labels, so it doesn't contain or notContain any provided matches
+ match = false
+ }
+ }
+
return match
}
diff --git a/vendor/github.com/vishvananda/netlink/filter.go b/vendor/github.com/vishvananda/netlink/filter.go
index 2d798b0fbb..fe41813359 100644
--- a/vendor/github.com/vishvananda/netlink/filter.go
+++ b/vendor/github.com/vishvananda/netlink/filter.go
@@ -19,6 +19,7 @@ type FilterAttrs struct {
Parent uint32
Priority uint16 // lower is higher priority
Protocol uint16 // unix.ETH_P_*
+ Chain *uint32
}
func (q FilterAttrs) String() string {
@@ -27,6 +28,11 @@ func (q FilterAttrs) String() string {
type TcAct int32
+const (
+ TC_ACT_EXT_SHIFT = 28
+ TC_ACT_EXT_VAL_MASK = (1 << TC_ACT_EXT_SHIFT) - 1
+)
+
const (
TC_ACT_UNSPEC TcAct = -1
TC_ACT_OK TcAct = 0
@@ -40,6 +46,22 @@ const (
TC_ACT_JUMP TcAct = 0x10000000
)
+func getTcActExt(local int32) int32 {
+ return local << TC_ACT_EXT_SHIFT
+}
+
+func getTcActGotoChain() TcAct {
+ return TcAct(getTcActExt(2))
+}
+
+func getTcActExtOpcode(combined int32) int32 {
+ return combined & (^TC_ACT_EXT_VAL_MASK)
+}
+
+func TcActExtCmp(combined int32, opcode int32) bool {
+ return getTcActExtOpcode(combined) == opcode
+}
+
func (a TcAct) String() string {
switch a {
case TC_ACT_UNSPEC:
@@ -63,6 +85,9 @@ func (a TcAct) String() string {
case TC_ACT_JUMP:
return "jump"
}
+ if TcActExtCmp(int32(a), int32(getTcActGotoChain())) {
+ return "goto"
+ }
return fmt.Sprintf("0x%x", int32(a))
}
@@ -112,6 +137,7 @@ type Action interface {
type GenericAction struct {
ActionAttrs
+ Chain int32
}
func (action *GenericAction) Type() string {
@@ -275,6 +301,7 @@ type SkbEditAction struct {
PType *uint16
Priority *uint32
Mark *uint32
+ Mask *uint32
}
func (action *SkbEditAction) Type() string {
@@ -348,6 +375,7 @@ type FwFilter struct {
InDev string
Mask uint32
Police *PoliceAction
+ Actions []Action
}
func (filter *FwFilter) Attrs() *FilterAttrs {
diff --git a/vendor/github.com/vishvananda/netlink/filter_linux.go b/vendor/github.com/vishvananda/netlink/filter_linux.go
index 4c6d1cf7d7..fbd434aa93 100644
--- a/vendor/github.com/vishvananda/netlink/filter_linux.go
+++ b/vendor/github.com/vishvananda/netlink/filter_linux.go
@@ -64,6 +64,11 @@ type Flower struct {
EncSrcIPMask net.IPMask
EncDestPort uint16
EncKeyId uint32
+ SkipHw bool
+ SkipSw bool
+ IPProto *nl.IPProto
+ DestPort uint16
+ SrcPort uint16
Actions []Action
}
@@ -129,6 +134,39 @@ func (filter *Flower) encode(parent *nl.RtAttr) error {
if filter.EncKeyId != 0 {
parent.AddRtAttr(nl.TCA_FLOWER_KEY_ENC_KEY_ID, htonl(filter.EncKeyId))
}
+ if filter.IPProto != nil {
+ ipproto := *filter.IPProto
+ parent.AddRtAttr(nl.TCA_FLOWER_KEY_IP_PROTO, ipproto.Serialize())
+ if filter.SrcPort != 0 {
+ switch ipproto {
+ case nl.IPPROTO_TCP:
+ parent.AddRtAttr(nl.TCA_FLOWER_KEY_TCP_SRC, htons(filter.SrcPort))
+ case nl.IPPROTO_UDP:
+ parent.AddRtAttr(nl.TCA_FLOWER_KEY_UDP_SRC, htons(filter.SrcPort))
+ case nl.IPPROTO_SCTP:
+ parent.AddRtAttr(nl.TCA_FLOWER_KEY_SCTP_SRC, htons(filter.SrcPort))
+ }
+ }
+ if filter.DestPort != 0 {
+ switch ipproto {
+ case nl.IPPROTO_TCP:
+ parent.AddRtAttr(nl.TCA_FLOWER_KEY_TCP_DST, htons(filter.DestPort))
+ case nl.IPPROTO_UDP:
+ parent.AddRtAttr(nl.TCA_FLOWER_KEY_UDP_DST, htons(filter.DestPort))
+ case nl.IPPROTO_SCTP:
+ parent.AddRtAttr(nl.TCA_FLOWER_KEY_SCTP_DST, htons(filter.DestPort))
+ }
+ }
+ }
+
+ var flags uint32 = 0
+ if filter.SkipHw {
+ flags |= nl.TCA_CLS_FLAGS_SKIP_HW
+ }
+ if filter.SkipSw {
+ flags |= nl.TCA_CLS_FLAGS_SKIP_SW
+ }
+ parent.AddRtAttr(nl.TCA_FLOWER_FLAGS, htonl(flags))
actionsAttr := parent.AddRtAttr(nl.TCA_FLOWER_ACT, nil)
if err := EncodeActions(actionsAttr, filter.Actions); err != nil {
@@ -162,6 +200,14 @@ func (filter *Flower) decode(data []syscall.NetlinkRouteAttr) error {
filter.EncDestPort = ntohs(datum.Value)
case nl.TCA_FLOWER_KEY_ENC_KEY_ID:
filter.EncKeyId = ntohl(datum.Value)
+ case nl.TCA_FLOWER_KEY_IP_PROTO:
+ val := new(nl.IPProto)
+ *val = nl.IPProto(datum.Value[0])
+ filter.IPProto = val
+ case nl.TCA_FLOWER_KEY_TCP_SRC, nl.TCA_FLOWER_KEY_UDP_SRC, nl.TCA_FLOWER_KEY_SCTP_SRC:
+ filter.SrcPort = ntohs(datum.Value)
+ case nl.TCA_FLOWER_KEY_TCP_DST, nl.TCA_FLOWER_KEY_UDP_DST, nl.TCA_FLOWER_KEY_SCTP_DST:
+ filter.DestPort = ntohs(datum.Value)
case nl.TCA_FLOWER_ACT:
tables, err := nl.ParseRouteAttr(datum.Value)
if err != nil {
@@ -171,6 +217,16 @@ func (filter *Flower) decode(data []syscall.NetlinkRouteAttr) error {
if err != nil {
return err
}
+ case nl.TCA_FLOWER_FLAGS:
+ attr := nl.DeserializeUint32Bitfield(datum.Value)
+ skipSw := attr.Value & nl.TCA_CLS_FLAGS_SKIP_HW
+ skipHw := attr.Value & nl.TCA_CLS_FLAGS_SKIP_SW
+ if skipSw != 0 {
+ filter.SkipSw = true
+ }
+ if skipHw != 0 {
+ filter.SkipHw = true
+ }
}
}
return nil
@@ -185,19 +241,7 @@ func FilterDel(filter Filter) error {
// FilterDel will delete a filter from the system.
// Equivalent to: `tc filter del $filter`
func (h *Handle) FilterDel(filter Filter) error {
- req := h.newNetlinkRequest(unix.RTM_DELTFILTER, unix.NLM_F_ACK)
- base := filter.Attrs()
- msg := &nl.TcMsg{
- Family: nl.FAMILY_ALL,
- Ifindex: int32(base.LinkIndex),
- Handle: base.Handle,
- Parent: base.Parent,
- Info: MakeHandle(base.Priority, nl.Swap16(base.Protocol)),
- }
- req.AddData(msg)
-
- _, err := req.Execute(unix.NETLINK_ROUTE, 0)
- return err
+ return h.filterModify(filter, unix.RTM_DELTFILTER, 0)
}
// FilterAdd will add a filter to the system.
@@ -209,7 +253,7 @@ func FilterAdd(filter Filter) error {
// FilterAdd will add a filter to the system.
// Equivalent to: `tc filter add $filter`
func (h *Handle) FilterAdd(filter Filter) error {
- return h.filterModify(filter, unix.NLM_F_CREATE|unix.NLM_F_EXCL)
+ return h.filterModify(filter, unix.RTM_NEWTFILTER, unix.NLM_F_CREATE|unix.NLM_F_EXCL)
}
// FilterReplace will replace a filter.
@@ -221,11 +265,11 @@ func FilterReplace(filter Filter) error {
// FilterReplace will replace a filter.
// Equivalent to: `tc filter replace $filter`
func (h *Handle) FilterReplace(filter Filter) error {
- return h.filterModify(filter, unix.NLM_F_CREATE)
+ return h.filterModify(filter, unix.RTM_NEWTFILTER, unix.NLM_F_CREATE)
}
-func (h *Handle) filterModify(filter Filter, flags int) error {
- req := h.newNetlinkRequest(unix.RTM_NEWTFILTER, flags|unix.NLM_F_ACK)
+func (h *Handle) filterModify(filter Filter, proto, flags int) error {
+ req := h.newNetlinkRequest(proto, flags|unix.NLM_F_ACK)
base := filter.Attrs()
msg := &nl.TcMsg{
Family: nl.FAMILY_ALL,
@@ -235,6 +279,9 @@ func (h *Handle) filterModify(filter Filter, flags int) error {
Info: MakeHandle(base.Priority, nl.Swap16(base.Protocol)),
}
req.AddData(msg)
+ if filter.Attrs().Chain != nil {
+ req.AddData(nl.NewRtAttr(nl.TCA_CHAIN, nl.Uint32Attr(*filter.Attrs().Chain)))
+ }
req.AddData(nl.NewRtAttr(nl.TCA_KIND, nl.ZeroTerminated(filter.Type())))
options := nl.NewRtAttr(nl.TCA_OPTIONS, nil)
@@ -312,6 +359,10 @@ func (h *Handle) filterModify(filter Filter, flags int) error {
native.PutUint32(b, filter.ClassId)
options.AddRtAttr(nl.TCA_FW_CLASSID, b)
}
+ actionsAttr := options.AddRtAttr(nl.TCA_FW_ACT, nil)
+ if err := EncodeActions(actionsAttr, filter.Actions); err != nil {
+ return err
+ }
case *BpfFilter:
var bpfFlags uint32
if filter.ClassId != 0 {
@@ -340,7 +391,6 @@ func (h *Handle) filterModify(filter Filter, flags int) error {
return err
}
}
-
req.AddData(options)
_, err := req.Execute(unix.NETLINK_ROUTE, 0)
return err
@@ -446,6 +496,10 @@ func (h *Handle) FilterList(link Link, parent uint32) ([]Filter, error) {
default:
detailed = true
}
+ case nl.TCA_CHAIN:
+ val := new(uint32)
+ *val = native.Uint32(attr.Value)
+ base.Chain = val
}
}
// only return the detailed version of the filter
@@ -597,6 +651,9 @@ func EncodeActions(attr *nl.RtAttr, actions []Action) error {
if action.Mark != nil {
aopts.AddRtAttr(nl.TCA_SKBEDIT_MARK, nl.Uint32Attr(*action.Mark))
}
+ if action.Mask != nil {
+ aopts.AddRtAttr(nl.TCA_SKBEDIT_MASK, nl.Uint32Attr(*action.Mask))
+ }
case *ConnmarkAction:
table := attr.AddRtAttr(tabIndex, nil)
tabIndex++
@@ -739,6 +796,9 @@ func parseActions(tables []syscall.NetlinkRouteAttr) ([]Action, error) {
case nl.TCA_SKBEDIT_MARK:
mark := native.Uint32(adatum.Value[0:4])
action.(*SkbEditAction).Mark = &mark
+ case nl.TCA_SKBEDIT_MASK:
+ mask := native.Uint32(adatum.Value[0:4])
+ action.(*SkbEditAction).Mask = &mask
case nl.TCA_SKBEDIT_PRIORITY:
priority := native.Uint32(adatum.Value[0:4])
action.(*SkbEditAction).Priority = &priority
@@ -780,6 +840,9 @@ func parseActions(tables []syscall.NetlinkRouteAttr) ([]Action, error) {
case nl.TCA_GACT_PARMS:
gen := *nl.DeserializeTcGen(adatum.Value)
toAttrs(&gen, action.Attrs())
+ if action.Attrs().Action.String() == "goto" {
+ action.(*GenericAction).Chain = TC_ACT_EXT_VAL_MASK & gen.Action
+ }
}
case "police":
parsePolice(adatum, action.(*PoliceAction))
@@ -855,6 +918,15 @@ func parseFwData(filter Filter, data []syscall.NetlinkRouteAttr) (bool, error) {
parsePolice(aattr, &police)
}
fw.Police = &police
+ case nl.TCA_FW_ACT:
+ tables, err := nl.ParseRouteAttr(datum.Value)
+ if err != nil {
+ return detailed, err
+ }
+ fw.Actions, err = parseActions(tables)
+ if err != nil {
+ return detailed, err
+ }
}
}
return detailed, nil
diff --git a/vendor/github.com/vishvananda/netlink/ipset_linux.go b/vendor/github.com/vishvananda/netlink/ipset_linux.go
index 1f4eae81c2..f4c05229fa 100644
--- a/vendor/github.com/vishvananda/netlink/ipset_linux.go
+++ b/vendor/github.com/vishvananda/netlink/ipset_linux.go
@@ -67,11 +67,13 @@ type IpsetCreateOptions struct {
Comments bool
Skbinfo bool
- Revision uint8
- IPFrom net.IP
- IPTo net.IP
- PortFrom uint16
- PortTo uint16
+ Family uint8
+ Revision uint8
+ IPFrom net.IP
+ IPTo net.IP
+ PortFrom uint16
+ PortTo uint16
+ MaxElements uint32
}
// IpsetProtocol returns the ipset protocol version from the kernel
@@ -94,6 +96,11 @@ func IpsetFlush(setname string) error {
return pkgHandle.IpsetFlush(setname)
}
+// IpsetSwap swaps two ipsets.
+func IpsetSwap(setname, othersetname string) error {
+ return pkgHandle.IpsetSwap(setname, othersetname)
+}
+
// IpsetList dumps an specific ipset.
func IpsetList(setname string) (*IPSetResult, error) {
return pkgHandle.IpsetList(setname)
@@ -114,6 +121,11 @@ func IpsetDel(setname string, entry *IPSetEntry) error {
return pkgHandle.IpsetDel(setname, entry)
}
+// IpsetTest tests whether an entry is in a set or not.
+func IpsetTest(setname string, entry *IPSetEntry) (bool, error) {
+ return pkgHandle.IpsetTest(setname, entry)
+}
+
func (h *Handle) IpsetProtocol() (protocol uint8, minVersion uint8, err error) {
req := h.newIpsetRequest(nl.IPSET_CMD_PROTOCOL)
msgs, err := req.Execute(unix.NETLINK_NETFILTER, 0)
@@ -153,11 +165,18 @@ func (h *Handle) IpsetCreate(setname, typename string, options IpsetCreateOption
data.AddChild(nl.NewRtAttr(nl.IPSET_ATTR_PORT_FROM|int(nl.NLA_F_NET_BYTEORDER), buf[:2]))
data.AddChild(nl.NewRtAttr(nl.IPSET_ATTR_PORT_TO|int(nl.NLA_F_NET_BYTEORDER), buf[2:]))
default:
- family = unix.AF_INET
+ family = options.Family
+ if family == 0 {
+ family = unix.AF_INET
+ }
}
req.AddData(nl.NewRtAttr(nl.IPSET_ATTR_FAMILY, nl.Uint8Attr(family)))
+ if options.MaxElements != 0 {
+ data.AddChild(&nl.Uint32Attribute{Type: nl.IPSET_ATTR_MAXELEM | nl.NLA_F_NET_BYTEORDER, Value: options.MaxElements})
+ }
+
if timeout := options.Timeout; timeout != nil {
data.AddChild(&nl.Uint32Attribute{Type: nl.IPSET_ATTR_TIMEOUT | nl.NLA_F_NET_BYTEORDER, Value: *timeout})
}
@@ -197,6 +216,14 @@ func (h *Handle) IpsetFlush(setname string) error {
return err
}
+func (h *Handle) IpsetSwap(setname, othersetname string) error {
+ req := h.newIpsetRequest(nl.IPSET_CMD_SWAP)
+ req.AddData(nl.NewRtAttr(nl.IPSET_ATTR_SETNAME, nl.ZeroTerminated(setname)))
+ req.AddData(nl.NewRtAttr(nl.IPSET_ATTR_TYPENAME, nl.ZeroTerminated(othersetname)))
+ _, err := ipsetExecute(req)
+ return err
+}
+
func (h *Handle) IpsetList(name string) (*IPSetResult, error) {
req := h.newIpsetRequest(nl.IPSET_CMD_LIST)
req.AddData(nl.NewRtAttr(nl.IPSET_ATTR_SETNAME, nl.ZeroTerminated(name)))
@@ -236,18 +263,23 @@ func (h *Handle) IpsetDel(setname string, entry *IPSetEntry) error {
return h.ipsetAddDel(nl.IPSET_CMD_DEL, setname, entry)
}
-func (h *Handle) ipsetAddDel(nlCmd int, setname string, entry *IPSetEntry) error {
- req := h.newIpsetRequest(nlCmd)
- req.AddData(nl.NewRtAttr(nl.IPSET_ATTR_SETNAME, nl.ZeroTerminated(setname)))
-
- if entry.Comment != "" {
- req.AddData(nl.NewRtAttr(nl.IPSET_ATTR_COMMENT, nl.ZeroTerminated(entry.Comment)))
+func encodeIP(ip net.IP) (*nl.RtAttr, error) {
+ typ := int(nl.NLA_F_NET_BYTEORDER)
+ if ip4 := ip.To4(); ip4 != nil {
+ typ |= nl.IPSET_ATTR_IPADDR_IPV4
+ ip = ip4
+ } else {
+ typ |= nl.IPSET_ATTR_IPADDR_IPV6
}
+ return nl.NewRtAttr(typ, ip), nil
+}
+
+func buildEntryData(entry *IPSetEntry) (*nl.RtAttr, error) {
data := nl.NewRtAttr(nl.IPSET_ATTR_DATA|int(nl.NLA_F_NESTED), nil)
- if !entry.Replace {
- req.Flags |= unix.NLM_F_EXCL
+ if entry.Comment != "" {
+ data.AddChild(nl.NewRtAttr(nl.IPSET_ATTR_COMMENT, nl.ZeroTerminated(entry.Comment)))
}
if entry.Timeout != nil {
@@ -255,7 +287,10 @@ func (h *Handle) ipsetAddDel(nlCmd int, setname string, entry *IPSetEntry) error
}
if entry.IP != nil {
- nestedData := nl.NewRtAttr(nl.IPSET_ATTR_IP|int(nl.NLA_F_NET_BYTEORDER), entry.IP)
+ nestedData, err := encodeIP(entry.IP)
+ if err != nil {
+ return nil, err
+ }
data.AddChild(nl.NewRtAttr(nl.IPSET_ATTR_IP|int(nl.NLA_F_NESTED), nestedData.Serialize()))
}
@@ -268,7 +303,10 @@ func (h *Handle) ipsetAddDel(nlCmd int, setname string, entry *IPSetEntry) error
}
if entry.IP2 != nil {
- nestedData := nl.NewRtAttr(nl.IPSET_ATTR_IP|int(nl.NLA_F_NET_BYTEORDER), entry.IP2)
+ nestedData, err := encodeIP(entry.IP2)
+ if err != nil {
+ return nil, err
+ }
data.AddChild(nl.NewRtAttr(nl.IPSET_ATTR_IP2|int(nl.NLA_F_NESTED), nestedData.Serialize()))
}
@@ -295,14 +333,53 @@ func (h *Handle) ipsetAddDel(nlCmd int, setname string, entry *IPSetEntry) error
if entry.Mark != nil {
data.AddChild(&nl.Uint32Attribute{Type: nl.IPSET_ATTR_MARK | nl.NLA_F_NET_BYTEORDER, Value: *entry.Mark})
}
+ return data, nil
+}
+func (h *Handle) ipsetAddDel(nlCmd int, setname string, entry *IPSetEntry) error {
+ req := h.newIpsetRequest(nlCmd)
+ req.AddData(nl.NewRtAttr(nl.IPSET_ATTR_SETNAME, nl.ZeroTerminated(setname)))
+
+ if !entry.Replace {
+ req.Flags |= unix.NLM_F_EXCL
+ }
+
+ data, err := buildEntryData(entry)
+ if err != nil {
+ return err
+ }
data.AddChild(&nl.Uint32Attribute{Type: nl.IPSET_ATTR_LINENO | nl.NLA_F_NET_BYTEORDER, Value: 0})
req.AddData(data)
- _, err := ipsetExecute(req)
+ _, err = ipsetExecute(req)
return err
}
+func (h *Handle) IpsetTest(setname string, entry *IPSetEntry) (bool, error) {
+ req := h.newIpsetRequest(nl.IPSET_CMD_TEST)
+ req.AddData(nl.NewRtAttr(nl.IPSET_ATTR_SETNAME, nl.ZeroTerminated(setname)))
+
+ if !entry.Replace {
+ req.Flags |= unix.NLM_F_EXCL
+ }
+
+ data, err := buildEntryData(entry)
+ if err != nil {
+ return false, err
+ }
+ req.AddData(data)
+
+ _, err = ipsetExecute(req)
+ if err != nil {
+ if err == nl.IPSetError(nl.IPSET_ERR_EXIST) {
+ // not exist
+ return false, nil
+ }
+ return false, err
+ }
+ return true, nil
+}
+
func (h *Handle) newIpsetRequest(cmd int) *nl.NetlinkRequest {
req := h.newNetlinkRequest(cmd|(unix.NFNL_SUBSYS_IPSET<<8), nl.GetIpsetFlags(cmd))
@@ -466,7 +543,7 @@ func parseIPSetEntry(data []byte) (entry IPSetEntry) {
case nl.IPSET_ATTR_IP | nl.NLA_F_NESTED:
for attr := range nl.ParseAttributes(attr.Value) {
switch attr.Type {
- case nl.IPSET_ATTR_IP:
+ case nl.IPSET_ATTR_IPADDR_IPV4, nl.IPSET_ATTR_IPADDR_IPV6:
entry.IP = net.IP(attr.Value)
default:
log.Printf("unknown nested ADT attribute from kernel: %+v", attr)
@@ -475,7 +552,7 @@ func parseIPSetEntry(data []byte) (entry IPSetEntry) {
case nl.IPSET_ATTR_IP2 | nl.NLA_F_NESTED:
for attr := range nl.ParseAttributes(attr.Value) {
switch attr.Type {
- case nl.IPSET_ATTR_IP:
+ case nl.IPSET_ATTR_IPADDR_IPV4, nl.IPSET_ATTR_IPADDR_IPV6:
entry.IP2 = net.IP(attr.Value)
default:
log.Printf("unknown nested ADT attribute from kernel: %+v", attr)
diff --git a/vendor/github.com/vishvananda/netlink/link.go b/vendor/github.com/vishvananda/netlink/link.go
index e8915a5d85..4963e11a94 100644
--- a/vendor/github.com/vishvananda/netlink/link.go
+++ b/vendor/github.com/vishvananda/netlink/link.go
@@ -266,6 +266,7 @@ type Bridge struct {
AgeingTime *uint32
HelloTime *uint32
VlanFiltering *bool
+ VlanDefaultPVID *uint16
}
func (bridge *Bridge) Attrs() *LinkAttrs {
@@ -1166,6 +1167,7 @@ type Gretun struct {
EncapFlags uint16
EncapSport uint16
EncapDport uint16
+ FlowBased bool
}
func (gretun *Gretun) Attrs() *LinkAttrs {
@@ -1209,6 +1211,7 @@ func (gtp *GTP) Type() string {
}
// Virtual XFRM Interfaces
+//
// Named "xfrmi" to prevent confusion with XFRM objects
type Xfrmi struct {
LinkAttrs
diff --git a/vendor/github.com/vishvananda/netlink/link_linux.go b/vendor/github.com/vishvananda/netlink/link_linux.go
index 9e66dc50fc..524a93bb00 100644
--- a/vendor/github.com/vishvananda/netlink/link_linux.go
+++ b/vendor/github.com/vishvananda/netlink/link_linux.go
@@ -345,6 +345,16 @@ func (h *Handle) BridgeSetVlanFiltering(link Link, on bool) error {
return h.linkModify(bridge, unix.NLM_F_ACK)
}
+func BridgeSetVlanDefaultPVID(link Link, pvid uint16) error {
+ return pkgHandle.BridgeSetVlanDefaultPVID(link, pvid)
+}
+
+func (h *Handle) BridgeSetVlanDefaultPVID(link Link, pvid uint16) error {
+ bridge := link.(*Bridge)
+ bridge.VlanDefaultPVID = &pvid
+ return h.linkModify(bridge, unix.NLM_F_ACK)
+}
+
func SetPromiscOn(link Link) error {
return pkgHandle.SetPromiscOn(link)
}
@@ -993,7 +1003,7 @@ func (h *Handle) LinkSetGROMaxSize(link Link, maxSize int) error {
b := make([]byte, 4)
native.PutUint32(b, uint32(maxSize))
- data := nl.NewRtAttr(nl.IFLA_GRO_MAX_SIZE, b)
+ data := nl.NewRtAttr(unix.IFLA_GRO_MAX_SIZE, b)
req.AddData(data)
_, err := req.Execute(unix.NETLINK_ROUTE, 0)
@@ -1456,7 +1466,7 @@ func (h *Handle) linkModify(link Link, flags int) error {
}
if base.GROMaxSize > 0 {
- groAttr := nl.NewRtAttr(nl.IFLA_GRO_MAX_SIZE, nl.Uint32Attr(base.GROMaxSize))
+ groAttr := nl.NewRtAttr(unix.IFLA_GRO_MAX_SIZE, nl.Uint32Attr(base.GROMaxSize))
req.AddData(groAttr)
}
@@ -2000,7 +2010,7 @@ func LinkDeserialize(hdr *unix.NlMsghdr, m []byte) (Link, error) {
base.GSOMaxSize = native.Uint32(attr.Value[0:4])
case unix.IFLA_GSO_MAX_SEGS:
base.GSOMaxSegs = native.Uint32(attr.Value[0:4])
- case nl.IFLA_GRO_MAX_SIZE:
+ case unix.IFLA_GRO_MAX_SIZE:
base.GROMaxSize = native.Uint32(attr.Value[0:4])
case unix.IFLA_VFINFO_LIST:
data, err := nl.ParseRouteAttr(attr.Value)
@@ -2714,7 +2724,7 @@ func addGretapAttrs(gretap *Gretap, linkInfo *nl.RtAttr) {
if gretap.FlowBased {
// In flow based mode, no other attributes need to be configured
- data.AddRtAttr(nl.IFLA_GRE_COLLECT_METADATA, boolAttr(gretap.FlowBased))
+ data.AddRtAttr(nl.IFLA_GRE_COLLECT_METADATA, []byte{})
return
}
@@ -2797,6 +2807,12 @@ func parseGretapData(link Link, data []syscall.NetlinkRouteAttr) {
func addGretunAttrs(gre *Gretun, linkInfo *nl.RtAttr) {
data := linkInfo.AddRtAttr(nl.IFLA_INFO_DATA, nil)
+ if gre.FlowBased {
+ // In flow based mode, no other attributes need to be configured
+ data.AddRtAttr(nl.IFLA_GRE_COLLECT_METADATA, []byte{})
+ return
+ }
+
if ip := gre.Local; ip != nil {
if ip.To4() != nil {
ip = ip.To4()
@@ -2867,6 +2883,8 @@ func parseGretunData(link Link, data []syscall.NetlinkRouteAttr) {
gre.EncapSport = ntohs(datum.Value[0:2])
case nl.IFLA_GRE_ENCAP_DPORT:
gre.EncapDport = ntohs(datum.Value[0:2])
+ case nl.IFLA_GRE_COLLECT_METADATA:
+ gre.FlowBased = true
}
}
}
@@ -3176,6 +3194,9 @@ func addBridgeAttrs(bridge *Bridge, linkInfo *nl.RtAttr) {
if bridge.VlanFiltering != nil {
data.AddRtAttr(nl.IFLA_BR_VLAN_FILTERING, boolToByte(*bridge.VlanFiltering))
}
+ if bridge.VlanDefaultPVID != nil {
+ data.AddRtAttr(nl.IFLA_BR_VLAN_DEFAULT_PVID, nl.Uint16Attr(*bridge.VlanDefaultPVID))
+ }
}
func parseBridgeData(bridge Link, data []syscall.NetlinkRouteAttr) {
@@ -3194,6 +3215,9 @@ func parseBridgeData(bridge Link, data []syscall.NetlinkRouteAttr) {
case nl.IFLA_BR_VLAN_FILTERING:
vlanFiltering := datum.Value[0] == 1
br.VlanFiltering = &vlanFiltering
+ case nl.IFLA_BR_VLAN_DEFAULT_PVID:
+ vlanDefaultPVID := native.Uint16(datum.Value[0:2])
+ br.VlanDefaultPVID = &vlanDefaultPVID
}
}
}
diff --git a/vendor/github.com/vishvananda/netlink/neigh_linux.go b/vendor/github.com/vishvananda/netlink/neigh_linux.go
index 4c1e766351..4bf63037a5 100644
--- a/vendor/github.com/vishvananda/netlink/neigh_linux.go
+++ b/vendor/github.com/vishvananda/netlink/neigh_linux.go
@@ -370,10 +370,9 @@ func NeighSubscribeWithOptions(ch chan<- NeighUpdate, done <-chan struct{}, opti
func neighSubscribeAt(newNs, curNs netns.NsHandle, ch chan<- NeighUpdate, done <-chan struct{}, cberr func(error), listExisting bool) error {
s, err := nl.SubscribeAt(newNs, curNs, unix.NETLINK_ROUTE, unix.RTNLGRP_NEIGH)
makeRequest := func(family int) error {
- req := pkgHandle.newNetlinkRequest(unix.RTM_GETNEIGH,
- unix.NLM_F_DUMP)
- infmsg := nl.NewIfInfomsg(family)
- req.AddData(infmsg)
+ req := pkgHandle.newNetlinkRequest(unix.RTM_GETNEIGH, unix.NLM_F_DUMP)
+ ndmsg := &Ndmsg{Family: uint8(family)}
+ req.AddData(ndmsg)
if err := s.Send(req); err != nil {
return err
}
@@ -427,12 +426,12 @@ func neighSubscribeAt(newNs, curNs netns.NsHandle, ch chan<- NeighUpdate, done <
continue
}
if m.Header.Type == unix.NLMSG_ERROR {
- error := int32(native.Uint32(m.Data[0:4]))
- if error == 0 {
+ nError := int32(native.Uint32(m.Data[0:4]))
+ if nError == 0 {
continue
}
if cberr != nil {
- cberr(syscall.Errno(-error))
+ cberr(syscall.Errno(-nError))
}
return
}
diff --git a/vendor/github.com/vishvananda/netlink/netlink_unspecified.go b/vendor/github.com/vishvananda/netlink/netlink_unspecified.go
index c80b05e9e6..c641949052 100644
--- a/vendor/github.com/vishvananda/netlink/netlink_unspecified.go
+++ b/vendor/github.com/vishvananda/netlink/netlink_unspecified.go
@@ -224,6 +224,10 @@ func XfrmPolicyList(family int) ([]XfrmPolicy, error) {
return nil, ErrNotImplemented
}
+func XfrmPolicyGet(policy *XfrmPolicy) (*XfrmPolicy, error) {
+ return nil, ErrNotImplemented
+}
+
func XfrmStateAdd(policy *XfrmState) error {
return ErrNotImplemented
}
diff --git a/vendor/github.com/vishvananda/netlink/nl/conntrack_linux.go b/vendor/github.com/vishvananda/netlink/nl/conntrack_linux.go
index 183601803b..8659cd1302 100644
--- a/vendor/github.com/vishvananda/netlink/nl/conntrack_linux.go
+++ b/vendor/github.com/vishvananda/netlink/nl/conntrack_linux.go
@@ -89,6 +89,7 @@ const (
CTA_USE = 11
CTA_ID = 12
CTA_TIMESTAMP = 20
+ CTA_LABELS = 22
)
// enum ctattr_tuple {
diff --git a/vendor/github.com/vishvananda/netlink/nl/ipset_linux.go b/vendor/github.com/vishvananda/netlink/nl/ipset_linux.go
index a60b4b09d9..89dd009df1 100644
--- a/vendor/github.com/vishvananda/netlink/nl/ipset_linux.go
+++ b/vendor/github.com/vishvananda/netlink/nl/ipset_linux.go
@@ -88,6 +88,11 @@ const (
SET_ATTR_CREATE_MAX
)
+const (
+ IPSET_ATTR_IPADDR_IPV4 = 1
+ IPSET_ATTR_IPADDR_IPV6 = 2
+)
+
/* ADT specific attributes */
const (
IPSET_ATTR_ETHER = IPSET_ATTR_CADT_MAX + iota + 1
diff --git a/vendor/github.com/vishvananda/netlink/nl/link_linux.go b/vendor/github.com/vishvananda/netlink/nl/link_linux.go
index edf1c80714..e10edbc09d 100644
--- a/vendor/github.com/vishvananda/netlink/nl/link_linux.go
+++ b/vendor/github.com/vishvananda/netlink/nl/link_linux.go
@@ -718,8 +718,3 @@ const (
IFLA_BAREUDP_MULTIPROTO_MODE
IFLA_BAREUDP_MAX = IFLA_BAREUDP_MULTIPROTO_MODE
)
-
-const (
- IFLA_UNSPEC = iota
- IFLA_GRO_MAX_SIZE = 0x3a
-)
diff --git a/vendor/github.com/vishvananda/netlink/nl/nl_linux.go b/vendor/github.com/vishvananda/netlink/nl/nl_linux.go
index 600b942b17..d3e5ed3925 100644
--- a/vendor/github.com/vishvananda/netlink/nl/nl_linux.go
+++ b/vendor/github.com/vishvananda/netlink/nl/nl_linux.go
@@ -330,6 +330,19 @@ func NewIfInfomsgChild(parent *RtAttr, family int) *IfInfomsg {
return msg
}
+type Uint32Bitfield struct {
+ Value uint32
+ Selector uint32
+}
+
+func (a *Uint32Bitfield) Serialize() []byte {
+ return (*(*[SizeofUint32Bitfield]byte)(unsafe.Pointer(a)))[:]
+}
+
+func DeserializeUint32Bitfield(data []byte) *Uint32Bitfield {
+ return (*Uint32Bitfield)(unsafe.Pointer(&data[0:SizeofUint32Bitfield][0]))
+}
+
type Uint32Attribute struct {
Type uint16
Value uint32
diff --git a/vendor/github.com/vishvananda/netlink/nl/route_linux.go b/vendor/github.com/vishvananda/netlink/nl/route_linux.go
index 03c1900ffa..c26f3bf91a 100644
--- a/vendor/github.com/vishvananda/netlink/nl/route_linux.go
+++ b/vendor/github.com/vishvananda/netlink/nl/route_linux.go
@@ -48,7 +48,9 @@ type RtNexthop struct {
}
func DeserializeRtNexthop(b []byte) *RtNexthop {
- return (*RtNexthop)(unsafe.Pointer(&b[0:unix.SizeofRtNexthop][0]))
+ return &RtNexthop{
+ RtNexthop: *((*unix.RtNexthop)(unsafe.Pointer(&b[0:unix.SizeofRtNexthop][0]))),
+ }
}
func (msg *RtNexthop) Len() int {
diff --git a/vendor/github.com/vishvananda/netlink/nl/tc_linux.go b/vendor/github.com/vishvananda/netlink/nl/tc_linux.go
index 48f292bdaa..d8b60c2ed7 100644
--- a/vendor/github.com/vishvananda/netlink/nl/tc_linux.go
+++ b/vendor/github.com/vishvananda/netlink/nl/tc_linux.go
@@ -2,7 +2,10 @@ package nl
import (
"encoding/binary"
+ "fmt"
"unsafe"
+
+ "golang.org/x/sys/unix"
)
// LinkLayer
@@ -42,7 +45,14 @@ const (
TCA_FCNT
TCA_STATS2
TCA_STAB
- TCA_MAX = TCA_STAB
+ TCA_PAD
+ TCA_DUMP_INVISIBLE
+ TCA_CHAIN
+ TCA_HW_OFFLOAD
+ TCA_INGRESS_BLOCK
+ TCA_EGRESS_BLOCK
+ TCA_DUMP_FLAGS
+ TCA_MAX = TCA_DUMP_FLAGS
)
const (
@@ -56,6 +66,12 @@ const (
TCA_ACT_OPTIONS
TCA_ACT_INDEX
TCA_ACT_STATS
+ TCA_ACT_PAD
+ TCA_ACT_COOKIE
+ TCA_ACT_FLAGS
+ TCA_ACT_HW_STATS
+ TCA_ACT_USED_HW_STATS
+ TCA_ACT_IN_HW_COUNT
TCA_ACT_MAX
)
@@ -88,7 +104,7 @@ const (
SizeofTcHtbGlob = 0x14
SizeofTcU32Key = 0x10
SizeofTcU32Sel = 0x10 // without keys
- SizeofTcGen = 0x14
+ SizeofTcGen = 0x16
SizeofTcConnmark = SizeofTcGen + 0x04
SizeofTcCsum = SizeofTcGen + 0x04
SizeofTcMirred = SizeofTcGen + 0x08
@@ -98,6 +114,7 @@ const (
SizeofTcSfqQopt = 0x0b
SizeofTcSfqRedStats = 0x18
SizeofTcSfqQoptV1 = SizeofTcSfqQopt + SizeofTcSfqRedStats + 0x1c
+ SizeofUint32Bitfield = 0x8
)
// struct tcmsg {
@@ -804,7 +821,8 @@ const (
TCA_SKBEDIT_MARK
TCA_SKBEDIT_PAD
TCA_SKBEDIT_PTYPE
- TCA_SKBEDIT_MAX = TCA_SKBEDIT_MARK
+ TCA_SKBEDIT_MASK
+ TCA_SKBEDIT_MAX
)
type TcSkbEdit struct {
@@ -1022,6 +1040,9 @@ const (
__TCA_FLOWER_MAX
)
+const TCA_CLS_FLAGS_SKIP_HW = 1 << 0 /* don't offload filter to HW */
+const TCA_CLS_FLAGS_SKIP_SW = 1 << 1 /* don't use filter in SW */
+
// struct tc_sfq_qopt {
// unsigned quantum; /* Bytes per round allocated to flow */
// int perturb_period; /* Period of hash perturbation */
@@ -1121,3 +1142,36 @@ func DeserializeTcSfqQoptV1(b []byte) *TcSfqQoptV1 {
func (x *TcSfqQoptV1) Serialize() []byte {
return (*(*[SizeofTcSfqQoptV1]byte)(unsafe.Pointer(x)))[:]
}
+
+// IPProto represents Flower ip_proto attribute
+type IPProto uint8
+
+const (
+ IPPROTO_TCP IPProto = unix.IPPROTO_TCP
+ IPPROTO_UDP IPProto = unix.IPPROTO_UDP
+ IPPROTO_SCTP IPProto = unix.IPPROTO_SCTP
+ IPPROTO_ICMP IPProto = unix.IPPROTO_ICMP
+ IPPROTO_ICMPV6 IPProto = unix.IPPROTO_ICMPV6
+)
+
+func (i IPProto) Serialize() []byte {
+ arr := make([]byte, 1)
+ arr[0] = byte(i)
+ return arr
+}
+
+func (i IPProto) String() string {
+ switch i {
+ case IPPROTO_TCP:
+ return "tcp"
+ case IPPROTO_UDP:
+ return "udp"
+ case IPPROTO_SCTP:
+ return "sctp"
+ case IPPROTO_ICMP:
+ return "icmp"
+ case IPPROTO_ICMPV6:
+ return "icmpv6"
+ }
+ return fmt.Sprintf("%d", i)
+}
diff --git a/vendor/github.com/vishvananda/netlink/nl/xfrm_linux.go b/vendor/github.com/vishvananda/netlink/nl/xfrm_linux.go
index dce9073f7b..cdb318ba55 100644
--- a/vendor/github.com/vishvananda/netlink/nl/xfrm_linux.go
+++ b/vendor/github.com/vishvananda/netlink/nl/xfrm_linux.go
@@ -131,7 +131,15 @@ func (x *XfrmAddress) ToIP() net.IP {
return ip
}
-func (x *XfrmAddress) ToIPNet(prefixlen uint8) *net.IPNet {
+// family is only used when x and prefixlen are both 0
+func (x *XfrmAddress) ToIPNet(prefixlen uint8, family uint16) *net.IPNet {
+ empty := [SizeofXfrmAddress]byte{}
+ if bytes.Equal(x[:], empty[:]) && prefixlen == 0 {
+ if family == FAMILY_V6 {
+ return &net.IPNet{IP: net.ParseIP("::"), Mask: net.CIDRMask(int(prefixlen), 128)}
+ }
+ return &net.IPNet{IP: net.ParseIP("0.0.0.0"), Mask: net.CIDRMask(int(prefixlen), 32)}
+ }
ip := x.ToIP()
if GetIPFamily(ip) == FAMILY_V4 {
return &net.IPNet{IP: ip, Mask: net.CIDRMask(int(prefixlen), 32)}
diff --git a/vendor/github.com/vishvananda/netlink/qdisc.go b/vendor/github.com/vishvananda/netlink/qdisc.go
index d75e7fdfc1..00e93b458e 100644
--- a/vendor/github.com/vishvananda/netlink/qdisc.go
+++ b/vendor/github.com/vishvananda/netlink/qdisc.go
@@ -32,10 +32,11 @@ type Qdisc interface {
// has a handle, a parent and a refcnt. The root qdisc of a device should
// have parent == HANDLE_ROOT.
type QdiscAttrs struct {
- LinkIndex int
- Handle uint32
- Parent uint32
- Refcnt uint32 // read only
+ LinkIndex int
+ Handle uint32
+ Parent uint32
+ Refcnt uint32 // read only
+ IngressBlock *uint32
}
func (q QdiscAttrs) String() string {
diff --git a/vendor/github.com/vishvananda/netlink/qdisc_linux.go b/vendor/github.com/vishvananda/netlink/qdisc_linux.go
index 9ce9e908ed..e477bcd6c9 100644
--- a/vendor/github.com/vishvananda/netlink/qdisc_linux.go
+++ b/vendor/github.com/vishvananda/netlink/qdisc_linux.go
@@ -159,6 +159,9 @@ func (h *Handle) qdiscModify(cmd, flags int, qdisc Qdisc) error {
func qdiscPayload(req *nl.NetlinkRequest, qdisc Qdisc) error {
req.AddData(nl.NewRtAttr(nl.TCA_KIND, nl.ZeroTerminated(qdisc.Type())))
+ if qdisc.Attrs().IngressBlock != nil {
+ req.AddData(nl.NewRtAttr(nl.TCA_INGRESS_BLOCK, nl.Uint32Attr(*qdisc.Attrs().IngressBlock)))
+ }
options := nl.NewRtAttr(nl.TCA_OPTIONS, nil)
@@ -448,6 +451,10 @@ func (h *Handle) QdiscList(link Link) ([]Qdisc, error) {
// no options for ingress
}
+ case nl.TCA_INGRESS_BLOCK:
+ ingressBlock := new(uint32)
+ *ingressBlock = native.Uint32(attr.Value)
+ base.IngressBlock = ingressBlock
}
}
*qdisc.Attrs() = base
diff --git a/vendor/github.com/vishvananda/netlink/route_linux.go b/vendor/github.com/vishvananda/netlink/route_linux.go
index 8da8866573..62bb2d468a 100644
--- a/vendor/github.com/vishvananda/netlink/route_linux.go
+++ b/vendor/github.com/vishvananda/netlink/route_linux.go
@@ -41,7 +41,6 @@ func (s Scope) String() string {
}
}
-
const (
FLAG_ONLINK NextHopFlag = unix.RTNH_F_ONLINK
FLAG_PERVASIVE NextHopFlag = unix.RTNH_F_PERVASIVE
@@ -656,7 +655,8 @@ func RouteAdd(route *Route) error {
func (h *Handle) RouteAdd(route *Route) error {
flags := unix.NLM_F_CREATE | unix.NLM_F_EXCL | unix.NLM_F_ACK
req := h.newNetlinkRequest(unix.RTM_NEWROUTE, flags)
- return h.routeHandle(route, req, nl.NewRtMsg())
+ _, err := h.routeHandle(route, req, nl.NewRtMsg())
+ return err
}
// RouteAppend will append a route to the system.
@@ -670,7 +670,8 @@ func RouteAppend(route *Route) error {
func (h *Handle) RouteAppend(route *Route) error {
flags := unix.NLM_F_CREATE | unix.NLM_F_APPEND | unix.NLM_F_ACK
req := h.newNetlinkRequest(unix.RTM_NEWROUTE, flags)
- return h.routeHandle(route, req, nl.NewRtMsg())
+ _, err := h.routeHandle(route, req, nl.NewRtMsg())
+ return err
}
// RouteAddEcmp will add a route to the system.
@@ -682,7 +683,8 @@ func RouteAddEcmp(route *Route) error {
func (h *Handle) RouteAddEcmp(route *Route) error {
flags := unix.NLM_F_CREATE | unix.NLM_F_ACK
req := h.newNetlinkRequest(unix.RTM_NEWROUTE, flags)
- return h.routeHandle(route, req, nl.NewRtMsg())
+ _, err := h.routeHandle(route, req, nl.NewRtMsg())
+ return err
}
// RouteReplace will add a route to the system.
@@ -696,7 +698,8 @@ func RouteReplace(route *Route) error {
func (h *Handle) RouteReplace(route *Route) error {
flags := unix.NLM_F_CREATE | unix.NLM_F_REPLACE | unix.NLM_F_ACK
req := h.newNetlinkRequest(unix.RTM_NEWROUTE, flags)
- return h.routeHandle(route, req, nl.NewRtMsg())
+ _, err := h.routeHandle(route, req, nl.NewRtMsg())
+ return err
}
// RouteDel will delete a route from the system.
@@ -709,12 +712,13 @@ func RouteDel(route *Route) error {
// Equivalent to: `ip route del $route`
func (h *Handle) RouteDel(route *Route) error {
req := h.newNetlinkRequest(unix.RTM_DELROUTE, unix.NLM_F_ACK)
- return h.routeHandle(route, req, nl.NewRtDelMsg())
+ _, err := h.routeHandle(route, req, nl.NewRtDelMsg())
+ return err
}
-func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg) error {
- if (route.Dst == nil || route.Dst.IP == nil) && route.Src == nil && route.Gw == nil && route.MPLSDst == nil {
- return fmt.Errorf("one of Dst.IP, Src, or Gw must not be nil")
+func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg) ([][]byte, error) {
+ if req.NlMsghdr.Type != unix.RTM_GETROUTE && (route.Dst == nil || route.Dst.IP == nil) && route.Src == nil && route.Gw == nil && route.MPLSDst == nil {
+ return nil, fmt.Errorf("Either Dst.IP, Src.IP or Gw must be set")
}
family := -1
@@ -741,11 +745,11 @@ func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg
if route.NewDst != nil {
if family != -1 && family != route.NewDst.Family() {
- return fmt.Errorf("new destination and destination are not the same address family")
+ return nil, fmt.Errorf("new destination and destination are not the same address family")
}
buf, err := route.NewDst.Encode()
if err != nil {
- return err
+ return nil, err
}
rtAttrs = append(rtAttrs, nl.NewRtAttr(unix.RTA_NEWDST, buf))
}
@@ -756,7 +760,7 @@ func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg
rtAttrs = append(rtAttrs, nl.NewRtAttr(unix.RTA_ENCAP_TYPE, buf))
buf, err := route.Encap.Encode()
if err != nil {
- return err
+ return nil, err
}
switch route.Encap.Type() {
case nl.LWTUNNEL_ENCAP_BPF:
@@ -770,7 +774,7 @@ func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg
if route.Src != nil {
srcFamily := nl.GetIPFamily(route.Src)
if family != -1 && family != srcFamily {
- return fmt.Errorf("source and destination ip are not the same IP family")
+ return nil, fmt.Errorf("source and destination ip are not the same IP family")
}
family = srcFamily
var srcData []byte
@@ -786,7 +790,7 @@ func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg
if route.Gw != nil {
gwFamily := nl.GetIPFamily(route.Gw)
if family != -1 && family != gwFamily {
- return fmt.Errorf("gateway, source, and destination ip are not the same IP family")
+ return nil, fmt.Errorf("gateway, source, and destination ip are not the same IP family")
}
family = gwFamily
var gwData []byte
@@ -801,7 +805,7 @@ func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg
if route.Via != nil {
buf, err := route.Via.Encode()
if err != nil {
- return fmt.Errorf("failed to encode RTA_VIA: %v", err)
+ return nil, fmt.Errorf("failed to encode RTA_VIA: %v", err)
}
rtAttrs = append(rtAttrs, nl.NewRtAttr(unix.RTA_VIA, buf))
}
@@ -820,7 +824,7 @@ func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg
if nh.Gw != nil {
gwFamily := nl.GetIPFamily(nh.Gw)
if family != -1 && family != gwFamily {
- return fmt.Errorf("gateway, source, and destination ip are not the same IP family")
+ return nil, fmt.Errorf("gateway, source, and destination ip are not the same IP family")
}
if gwFamily == FAMILY_V4 {
children = append(children, nl.NewRtAttr(unix.RTA_GATEWAY, []byte(nh.Gw.To4())))
@@ -830,11 +834,11 @@ func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg
}
if nh.NewDst != nil {
if family != -1 && family != nh.NewDst.Family() {
- return fmt.Errorf("new destination and destination are not the same address family")
+ return nil, fmt.Errorf("new destination and destination are not the same address family")
}
buf, err := nh.NewDst.Encode()
if err != nil {
- return err
+ return nil, err
}
children = append(children, nl.NewRtAttr(unix.RTA_NEWDST, buf))
}
@@ -844,14 +848,14 @@ func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg
children = append(children, nl.NewRtAttr(unix.RTA_ENCAP_TYPE, buf))
buf, err := nh.Encap.Encode()
if err != nil {
- return err
+ return nil, err
}
children = append(children, nl.NewRtAttr(unix.RTA_ENCAP, buf))
}
if nh.Via != nil {
buf, err := nh.Via.Encode()
if err != nil {
- return err
+ return nil, err
}
children = append(children, nl.NewRtAttr(unix.RTA_VIA, buf))
}
@@ -968,19 +972,22 @@ func (h *Handle) routeHandle(route *Route, req *nl.NetlinkRequest, msg *nl.RtMsg
msg.Flags = uint32(route.Flags)
msg.Scope = uint8(route.Scope)
- msg.Family = uint8(family)
+ // only overwrite family if it was not set in msg
+ if msg.Family == 0 {
+ msg.Family = uint8(family)
+ }
req.AddData(msg)
for _, attr := range rtAttrs {
req.AddData(attr)
}
- b := make([]byte, 4)
- native.PutUint32(b, uint32(route.LinkIndex))
-
- req.AddData(nl.NewRtAttr(unix.RTA_OIF, b))
+ if (req.NlMsghdr.Type != unix.RTM_GETROUTE) || (req.NlMsghdr.Type == unix.RTM_GETROUTE && route.LinkIndex > 0) {
+ b := make([]byte, 4)
+ native.PutUint32(b, uint32(route.LinkIndex))
+ req.AddData(nl.NewRtAttr(unix.RTA_OIF, b))
+ }
- _, err := req.Execute(unix.NETLINK_ROUTE, 0)
- return err
+ return req.Execute(unix.NETLINK_ROUTE, 0)
}
// RouteList gets a list of routes in the system.
@@ -994,13 +1001,13 @@ func RouteList(link Link, family int) ([]Route, error) {
// Equivalent to: `ip route show`.
// The list can be filtered by link and ip family.
func (h *Handle) RouteList(link Link, family int) ([]Route, error) {
- var routeFilter *Route
+ routeFilter := &Route{}
if link != nil {
- routeFilter = &Route{
- LinkIndex: link.Attrs().Index,
- }
+ routeFilter.LinkIndex = link.Attrs().Index
+
+ return h.RouteListFiltered(family, routeFilter, RT_FILTER_OIF)
}
- return h.RouteListFiltered(family, routeFilter, RT_FILTER_OIF)
+ return h.RouteListFiltered(family, routeFilter, 0)
}
// RouteListFiltered gets a list of routes in the system filtered with specified rules.
@@ -1013,11 +1020,9 @@ func RouteListFiltered(family int, filter *Route, filterMask uint64) ([]Route, e
// All rules must be defined in RouteFilter struct
func (h *Handle) RouteListFiltered(family int, filter *Route, filterMask uint64) ([]Route, error) {
req := h.newNetlinkRequest(unix.RTM_GETROUTE, unix.NLM_F_DUMP)
- rtmsg := nl.NewRtMsg()
+ rtmsg := &nl.RtMsg{}
rtmsg.Family = uint8(family)
- req.AddData(rtmsg)
-
- msgs, err := req.Execute(unix.NETLINK_ROUTE, unix.RTM_NEWROUTE)
+ msgs, err := h.routeHandle(filter, req, rtmsg)
if err != nil {
return nil, err
}
@@ -1295,6 +1300,8 @@ type RouteGetOptions struct {
Oif string
VrfName string
SrcAddr net.IP
+ UID *uint32
+ Mark int
}
// RouteGetWithOptions gets a route to a specific destination from the host system.
@@ -1381,6 +1388,21 @@ func (h *Handle) RouteGetWithOptions(destination net.IP, options *RouteGetOption
req.AddData(nl.NewRtAttr(unix.RTA_SRC, srcAddr))
}
+
+ if options.UID != nil {
+ uid := *options.UID
+ b := make([]byte, 4)
+ native.PutUint32(b, uid)
+
+ req.AddData(nl.NewRtAttr(unix.RTA_UID, b))
+ }
+
+ if options.Mark > 0 {
+ b := make([]byte, 4)
+ native.PutUint32(b, uint32(options.Mark))
+
+ req.AddData(nl.NewRtAttr(unix.RTA_MARK, b))
+ }
}
msgs, err := req.Execute(unix.NETLINK_ROUTE, unix.RTM_NEWROUTE)
diff --git a/vendor/github.com/vishvananda/netlink/rule.go b/vendor/github.com/vishvananda/netlink/rule.go
index 53cd3d4f6a..9a6b57dac4 100644
--- a/vendor/github.com/vishvananda/netlink/rule.go
+++ b/vendor/github.com/vishvananda/netlink/rule.go
@@ -26,6 +26,8 @@ type Rule struct {
Dport *RulePortRange
Sport *RulePortRange
IPProto int
+ UIDRange *RuleUIDRange
+ Protocol uint8
}
func (r Rule) String() string {
@@ -66,3 +68,14 @@ type RulePortRange struct {
Start uint16
End uint16
}
+
+// NewRuleUIDRange creates rule uid range.
+func NewRuleUIDRange(start, end uint32) *RuleUIDRange {
+ return &RuleUIDRange{Start: start, End: end}
+}
+
+// RuleUIDRange represents rule uid range.
+type RuleUIDRange struct {
+ Start uint32
+ End uint32
+}
diff --git a/vendor/github.com/vishvananda/netlink/rule_linux.go b/vendor/github.com/vishvananda/netlink/rule_linux.go
index 3ae2138808..69f53e48de 100644
--- a/vendor/github.com/vishvananda/netlink/rule_linux.go
+++ b/vendor/github.com/vishvananda/netlink/rule_linux.go
@@ -168,6 +168,15 @@ func ruleHandle(rule *Rule, req *nl.NetlinkRequest) error {
req.AddData(nl.NewRtAttr(nl.FRA_SPORT_RANGE, b))
}
+ if rule.UIDRange != nil {
+ b := rule.UIDRange.toRtAttrData()
+ req.AddData(nl.NewRtAttr(nl.FRA_UID_RANGE, b))
+ }
+
+ if rule.Protocol > 0 {
+ req.AddData(nl.NewRtAttr(nl.FRA_PROTOCOL, nl.Uint8Attr(rule.Protocol)))
+ }
+
_, err := req.Execute(unix.NETLINK_ROUTE, 0)
return err
}
@@ -262,6 +271,10 @@ func (h *Handle) RuleListFiltered(family int, filter *Rule, filterMask uint64) (
rule.Dport = NewRulePortRange(native.Uint16(attrs[j].Value[0:2]), native.Uint16(attrs[j].Value[2:4]))
case nl.FRA_SPORT_RANGE:
rule.Sport = NewRulePortRange(native.Uint16(attrs[j].Value[0:2]), native.Uint16(attrs[j].Value[2:4]))
+ case nl.FRA_UID_RANGE:
+ rule.UIDRange = NewRuleUIDRange(native.Uint32(attrs[j].Value[0:4]), native.Uint32(attrs[j].Value[4:8]))
+ case nl.FRA_PROTOCOL:
+ rule.Protocol = uint8(attrs[j].Value[0])
}
}
@@ -299,3 +312,10 @@ func (pr *RulePortRange) toRtAttrData() []byte {
native.PutUint16(b[1], pr.End)
return bytes.Join(b, []byte{})
}
+
+func (pr *RuleUIDRange) toRtAttrData() []byte {
+ b := [][]byte{make([]byte, 4), make([]byte, 4)}
+ native.PutUint32(b[0], pr.Start)
+ native.PutUint32(b[1], pr.End)
+ return bytes.Join(b, []byte{})
+}
diff --git a/vendor/github.com/vishvananda/netlink/xfrm_policy_linux.go b/vendor/github.com/vishvananda/netlink/xfrm_policy_linux.go
index 3584968041..cca5260515 100644
--- a/vendor/github.com/vishvananda/netlink/xfrm_policy_linux.go
+++ b/vendor/github.com/vishvananda/netlink/xfrm_policy_linux.go
@@ -75,6 +75,7 @@ func (h *Handle) xfrmPolicyAddOrUpdate(policy *XfrmPolicy, nlProto int) error {
userTmpl := nl.DeserializeXfrmUserTmpl(tmplData[start : start+nl.SizeofXfrmUserTmpl])
userTmpl.XfrmId.Daddr.FromIP(tmpl.Dst)
userTmpl.Saddr.FromIP(tmpl.Src)
+ userTmpl.Family = uint16(nl.GetIPFamily(tmpl.Dst))
userTmpl.XfrmId.Proto = uint8(tmpl.Proto)
userTmpl.XfrmId.Spi = nl.Swap32(uint32(tmpl.Spi))
userTmpl.Mode = uint8(tmpl.Mode)
@@ -223,8 +224,8 @@ func parseXfrmPolicy(m []byte, family int) (*XfrmPolicy, error) {
var policy XfrmPolicy
- policy.Dst = msg.Sel.Daddr.ToIPNet(msg.Sel.PrefixlenD)
- policy.Src = msg.Sel.Saddr.ToIPNet(msg.Sel.PrefixlenS)
+ policy.Dst = msg.Sel.Daddr.ToIPNet(msg.Sel.PrefixlenD, uint16(family))
+ policy.Src = msg.Sel.Saddr.ToIPNet(msg.Sel.PrefixlenS, uint16(family))
policy.Proto = Proto(msg.Sel.Proto)
policy.DstPort = int(nl.Swap16(msg.Sel.Dport))
policy.SrcPort = int(nl.Swap16(msg.Sel.Sport))
diff --git a/vendor/github.com/vishvananda/netlink/xfrm_state.go b/vendor/github.com/vishvananda/netlink/xfrm_state.go
index 3cd01cbbdd..0095832dca 100644
--- a/vendor/github.com/vishvananda/netlink/xfrm_state.go
+++ b/vendor/github.com/vishvananda/netlink/xfrm_state.go
@@ -117,6 +117,7 @@ type XfrmState struct {
DontEncapDSCP bool
OSeqMayWrap bool
Replay *XfrmReplayState
+ Selector *XfrmPolicy
}
func (sa XfrmState) String() string {
diff --git a/vendor/github.com/vishvananda/netlink/xfrm_state_linux.go b/vendor/github.com/vishvananda/netlink/xfrm_state_linux.go
index 5c14120fd4..6b7bb8e72b 100644
--- a/vendor/github.com/vishvananda/netlink/xfrm_state_linux.go
+++ b/vendor/github.com/vishvananda/netlink/xfrm_state_linux.go
@@ -209,7 +209,6 @@ func (h *Handle) xfrmStateAllocSpi(state *XfrmState) (*XfrmState, error) {
msg.Min = 0x100
msg.Max = 0xffffffff
req.AddData(msg)
-
if state.Mark != nil {
out := nl.NewRtAttr(nl.XFRMA_MARK, writeMark(state.Mark))
req.AddData(out)
@@ -337,7 +336,6 @@ var familyError = fmt.Errorf("family error")
func xfrmStateFromXfrmUsersaInfo(msg *nl.XfrmUsersaInfo) *XfrmState {
var state XfrmState
-
state.Dst = msg.Id.Daddr.ToIP()
state.Src = msg.Saddr.ToIP()
state.Proto = Proto(msg.Id.Proto)
@@ -347,20 +345,25 @@ func xfrmStateFromXfrmUsersaInfo(msg *nl.XfrmUsersaInfo) *XfrmState {
state.ReplayWindow = int(msg.ReplayWindow)
lftToLimits(&msg.Lft, &state.Limits)
curToStats(&msg.Curlft, &msg.Stats, &state.Statistics)
+ state.Selector = &XfrmPolicy{
+ Dst: msg.Sel.Daddr.ToIPNet(msg.Sel.PrefixlenD, msg.Sel.Family),
+ Src: msg.Sel.Saddr.ToIPNet(msg.Sel.PrefixlenS, msg.Sel.Family),
+ Proto: Proto(msg.Sel.Proto),
+ DstPort: int(nl.Swap16(msg.Sel.Dport)),
+ SrcPort: int(nl.Swap16(msg.Sel.Sport)),
+ Ifindex: int(msg.Sel.Ifindex),
+ }
return &state
}
func parseXfrmState(m []byte, family int) (*XfrmState, error) {
msg := nl.DeserializeXfrmUsersaInfo(m)
-
// This is mainly for the state dump
if family != FAMILY_ALL && family != int(msg.Family) {
return nil, familyError
}
-
state := xfrmStateFromXfrmUsersaInfo(msg)
-
attrs, err := nl.ParseRouteAttr(m[nl.SizeofXfrmUsersaInfo:])
if err != nil {
return nil, err
@@ -515,6 +518,9 @@ func xfrmUsersaInfoFromXfrmState(state *XfrmState) *nl.XfrmUsersaInfo {
msg.Id.Spi = nl.Swap32(uint32(state.Spi))
msg.Reqid = uint32(state.Reqid)
msg.ReplayWindow = uint8(state.ReplayWindow)
-
+ msg.Sel = nl.XfrmSelector{}
+ if state.Selector != nil {
+ selFromPolicy(&msg.Sel, state.Selector)
+ }
return msg
}
diff --git a/vendor/go.opentelemetry.io/otel/.gitignore b/vendor/go.opentelemetry.io/otel/.gitignore
index 0b605b3d67..cf29d10a7c 100644
--- a/vendor/go.opentelemetry.io/otel/.gitignore
+++ b/vendor/go.opentelemetry.io/otel/.gitignore
@@ -7,6 +7,8 @@ Thumbs.db
*.iml
*.so
coverage.*
+go.work
+go.work.sum
gen/
diff --git a/vendor/go.opentelemetry.io/otel/.golangci.yml b/vendor/go.opentelemetry.io/otel/.golangci.yml
index 0f099f5759..e28904f6ac 100644
--- a/vendor/go.opentelemetry.io/otel/.golangci.yml
+++ b/vendor/go.opentelemetry.io/otel/.golangci.yml
@@ -85,6 +85,8 @@ linters-settings:
- "**/internal/matchers/*.go"
godot:
exclude:
+ # Exclude links.
+ - '^ *\[[^]]+\]:'
# Exclude sentence fragments for lists.
- '^[ ]*[-•]'
# Exclude sentences prefixing a list.
diff --git a/vendor/go.opentelemetry.io/otel/CHANGELOG.md b/vendor/go.opentelemetry.io/otel/CHANGELOG.md
index 1d9726f60b..7630a4f33a 100644
--- a/vendor/go.opentelemetry.io/otel/CHANGELOG.md
+++ b/vendor/go.opentelemetry.io/otel/CHANGELOG.md
@@ -8,6 +8,147 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
## [Unreleased]
+## [1.15.1/0.38.1] 2023-05-02
+
+### Fixed
+
+- Remove unused imports from `sdk/resource/host_id_bsd.go` which caused build failures. (#4040, #4041)
+
+## [1.15.0/0.38.0] 2023-04-27
+
+### Added
+
+- The `go.opentelemetry.io/otel/metric/embedded` package. (#3916)
+- The `Version` function to `go.opentelemetry.io/otel/sdk` to return the SDK version. (#3949)
+- Add a `WithNamespace` option to `go.opentelemetry.io/otel/exporters/prometheus` to allow users to prefix metrics with a namespace. (#3970)
+- The following configuration types were added to `go.opentelemetry.io/otel/metric/instrument` to be used in the configuration of measurement methods. (#3971)
+ - The `AddConfig` used to hold configuration for addition measurements
+ - `NewAddConfig` used to create a new `AddConfig`
+ - `AddOption` used to configure an `AddConfig`
+ - The `RecordConfig` used to hold configuration for recorded measurements
+ - `NewRecordConfig` used to create a new `RecordConfig`
+ - `RecordOption` used to configure a `RecordConfig`
+ - The `ObserveConfig` used to hold configuration for observed measurements
+ - `NewObserveConfig` used to create a new `ObserveConfig`
+ - `ObserveOption` used to configure an `ObserveConfig`
+- `WithAttributeSet` and `WithAttributes` are added to `go.opentelemetry.io/otel/metric/instrument`.
+ They return an option used during a measurement that defines the attribute Set associated with the measurement. (#3971)
+- The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` to return the OTLP metrics client version. (#3956)
+- The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlptrace` to return the OTLP trace client version. (#3956)
+
+### Changed
+
+- The `Extrema` in `go.opentelemetry.io/otel/sdk/metric/metricdata` is redefined with a generic argument of `[N int64 | float64]`. (#3870)
+- Update all exported interfaces from `go.opentelemetry.io/otel/metric` to embed their corresponding interface from `go.opentelemetry.io/otel/metric/embedded`.
+ This adds an implementation requirement to set the interface default behavior for unimplemented methods. (#3916)
+- Move No-Op implementation from `go.opentelemetry.io/otel/metric` into its own package `go.opentelemetry.io/otel/metric/noop`. (#3941)
+ - `metric.NewNoopMeterProvider` is replaced with `noop.NewMeterProvider`
+- Add all the methods from `"go.opentelemetry.io/otel/trace".SpanContext` to `bridgeSpanContext` by embedding `otel.SpanContext` in `bridgeSpanContext`. (#3966)
+- Wrap `UploadMetrics` error in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/` to improve error message when encountering generic grpc errors. (#3974)
+- The measurement methods for all instruments in `go.opentelemetry.io/otel/metric/instrument` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. (#3971)
+ - The `Int64Counter.Add` method now accepts `...AddOption`
+ - The `Float64Counter.Add` method now accepts `...AddOption`
+ - The `Int64UpDownCounter.Add` method now accepts `...AddOption`
+ - The `Float64UpDownCounter.Add` method now accepts `...AddOption`
+ - The `Int64Histogram.Record` method now accepts `...RecordOption`
+ - The `Float64Histogram.Record` method now accepts `...RecordOption`
+ - The `Int64Observer.Observe` method now accepts `...ObserveOption`
+ - The `Float64Observer.Observe` method now accepts `...ObserveOption`
+- The `Observer` methods in `go.opentelemetry.io/otel/metric` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. (#3971)
+ - The `Observer.ObserveInt64` method now accepts `...ObserveOption`
+ - The `Observer.ObserveFloat64` method now accepts `...ObserveOption`
+- Move global metric back to `go.opentelemetry.io/otel/metric/global` from `go.opentelemetry.io/otel`. (#3986)
+
+### Fixed
+
+- `TracerProvider` allows calling `Tracer()` while it's shutting down.
+ It used to deadlock. (#3924)
+- Use the SDK version for the Telemetry SDK resource detector in `go.opentelemetry.io/otel/sdk/resource`. (#3949)
+- Fix a data race in `SpanProcessor` returned by `NewSimpleSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace`. (#3951)
+- Automatically figure out the default aggregation with `aggregation.Default`. (#3967)
+
+### Deprecated
+
+- The `go.opentelemetry.io/otel/metric/instrument` package is deprecated.
+ Use the equivalent types added to `go.opentelemetry.io/otel/metric` instead. (#4018)
+
+## [1.15.0-rc.2/0.38.0-rc.2] 2023-03-23
+
+This is a release candidate for the v1.15.0/v0.38.0 release.
+That release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API.
+See our [versioning policy](VERSIONING.md) for more information about these stability guarantees.
+
+### Added
+
+- The `WithHostID` option to `go.opentelemetry.io/otel/sdk/resource`. (#3812)
+- The `WithoutTimestamps` option to `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` to sets all timestamps to zero. (#3828)
+- The new `Exemplar` type is added to `go.opentelemetry.io/otel/sdk/metric/metricdata`.
+ Both the `DataPoint` and `HistogramDataPoint` types from that package have a new field of `Exemplars` containing the sampled exemplars for their timeseries. (#3849)
+- Configuration for each metric instrument in `go.opentelemetry.io/otel/sdk/metric/instrument`. (#3895)
+- The internal logging introduces a warning level verbosity equal to `V(1)`. (#3900)
+- Added a log message warning about usage of `SimpleSpanProcessor` in production environments. (#3854)
+
+### Changed
+
+- Optimize memory allocation when creation a new `Set` using `NewSet` or `NewSetWithFiltered` in `go.opentelemetry.io/otel/attribute`. (#3832)
+- Optimize memory allocation when creation new metric instruments in `go.opentelemetry.io/otel/sdk/metric`. (#3832)
+- Avoid creating new objects on all calls to `WithDeferredSetup` and `SkipContextSetup` in OpenTracing bridge. (#3833)
+- The `New` and `Detect` functions from `go.opentelemetry.io/otel/sdk/resource` return errors that wrap underlying errors instead of just containing the underlying error strings. (#3844)
+- Both the `Histogram` and `HistogramDataPoint` are redefined with a generic argument of `[N int64 | float64]` in `go.opentelemetry.io/otel/sdk/metric/metricdata`. (#3849)
+- The metric `Export` interface from `go.opentelemetry.io/otel/sdk/metric` accepts a `*ResourceMetrics` instead of `ResourceMetrics`. (#3853)
+- Rename `Asynchronous` to `Observable` in `go.opentelemetry.io/otel/metric/instrument`. (#3892)
+- Rename `Int64ObserverOption` to `Int64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895)
+- Rename `Float64ObserverOption` to `Float64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895)
+- The internal logging changes the verbosity level of info to `V(4)`, the verbosity level of debug to `V(8)`. (#3900)
+
+### Fixed
+
+- `TracerProvider` consistently doesn't allow to register a `SpanProcessor` after shutdown. (#3845)
+
+### Removed
+
+- The deprecated `go.opentelemetry.io/otel/metric/global` package is removed. (#3829)
+- The unneeded `Synchronous` interface in `go.opentelemetry.io/otel/metric/instrument` was removed. (#3892)
+- The `Float64ObserverConfig` and `NewFloat64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`.
+ Use the added `float64` instrument configuration instead. (#3895)
+- The `Int64ObserverConfig` and `NewInt64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`.
+ Use the added `int64` instrument configuration instead. (#3895)
+- The `NewNoopMeter` function in `go.opentelemetry.io/otel/metric`, use `NewMeterProvider().Meter("")` instead. (#3893)
+
+## [1.15.0-rc.1/0.38.0-rc.1] 2023-03-01
+
+This is a release candidate for the v1.15.0/v0.38.0 release.
+That release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API.
+See our [versioning policy](VERSIONING.md) for more information about these stability guarantees.
+
+This release drops the compatibility guarantee of [Go 1.18].
+
+### Added
+
+- Support global `MeterProvider` in `go.opentelemetry.io/otel`. (#3818)
+ - Use `Meter` for a `metric.Meter` from the global `metric.MeterProvider`.
+ - Use `GetMeterProivder` for a global `metric.MeterProvider`.
+ - Use `SetMeterProivder` to set the global `metric.MeterProvider`.
+
+### Changed
+
+- Dropped compatibility testing for [Go 1.18].
+ The project no longer guarantees support for this version of Go. (#3813)
+
+### Fixed
+
+- Handle empty environment variable as it they were not set. (#3764)
+- Clarify the `httpconv` and `netconv` packages in `go.opentelemetry.io/otel/semconv/*` provide tracing semantic conventions. (#3823)
+
+### Deprecated
+
+- The `go.opentelemetry.io/otel/metric/global` package is deprecated.
+ Use `go.opentelemetry.io/otel` instead. (#3818)
+
+### Removed
+
+- The deprecated `go.opentelemetry.io/otel/metric/unit` package is removed. (#3814)
+
## [1.14.0/0.37.0/0.0.4] 2023-02-27
This release is the last to support [Go 1.18].
@@ -121,7 +262,7 @@ The next release will require at least [Go 1.19].
- The `go.opentelemetry.io/otel/semconv/v1.16.0` package.
The package contains semantic conventions from the `v1.16.0` version of the OpenTelemetry specification. (#3579)
- Metric instruments to `go.opentelemetry.io/otel/metric/instrument`.
- These instruments are use as replacements of the depreacted `go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}` packages.(#3575, #3586)
+ These instruments are use as replacements of the deprecated `go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}` packages.(#3575, #3586)
- `Float64ObservableCounter` replaces the `asyncfloat64.Counter`
- `Float64ObservableUpDownCounter` replaces the `asyncfloat64.UpDownCounter`
- `Float64ObservableGauge` replaces the `asyncfloat64.Gauge`
@@ -144,7 +285,7 @@ The next release will require at least [Go 1.19].
### Changed
- Jaeger and Zipkin exporter use `github.com/go-logr/logr` as the logging interface, and add the `WithLogr` option. (#3497, #3500)
-- Instrument configuration in `go.opentelemetry.io/otel/metric/instrument` is split into specific options and confguration based on the instrument type. (#3507)
+- Instrument configuration in `go.opentelemetry.io/otel/metric/instrument` is split into specific options and configuration based on the instrument type. (#3507)
- Use the added `Int64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncint64`.
- Use the added `Float64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncfloat64`.
- Use the added `Int64ObserverOption` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/asyncint64`.
@@ -157,7 +298,7 @@ The next release will require at least [Go 1.19].
- The `Shutdown` method of the `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` releases all computational resources when called the first time. (#3551)
- The `Sampler` returned from `TraceIDRatioBased` `go.opentelemetry.io/otel/sdk/trace` now uses the rightmost bits for sampling decisions.
This fixes random sampling when using ID generators like `xray.IDGenerator` and increasing parity with other language implementations. (#3557)
-- Errors from `go.opentelemetry.io/otel/exporters/otlp/otlptrace` exporters are wrapped in erros identifying their signal name.
+- Errors from `go.opentelemetry.io/otel/exporters/otlp/otlptrace` exporters are wrapped in errors identifying their signal name.
Existing users of the exporters attempting to identify specific errors will need to use `errors.Unwrap()` to get the underlying error. (#3516)
- Exporters from `go.opentelemetry.io/otel/exporters/otlp` will print the final retryable error message when attempts to retry time out. (#3514)
- The instrument kind names in `go.opentelemetry.io/otel/sdk/metric` are updated to match the API. (#3562)
@@ -266,7 +407,7 @@ The next release will require at least [Go 1.19].
- Asynchronous counters (`Counter` and `UpDownCounter`) from the metric SDK now produce delta sums when configured with delta temporality. (#3398)
- Exported `Status` codes in the `go.opentelemetry.io/otel/exporters/zipkin` exporter are now exported as all upper case values. (#3340)
- `Aggregation`s from `go.opentelemetry.io/otel/sdk/metric` with no data are not exported. (#3394, #3436)
-- Reenabled Attribute Filters in the Metric SDK. (#3396)
+- Re-enabled Attribute Filters in the Metric SDK. (#3396)
- Asynchronous callbacks are only called if they are registered with at least one instrument that does not use drop aggragation. (#3408)
- Do not report empty partial-success responses in the `go.opentelemetry.io/otel/exporters/otlp` exporters. (#3438, #3432)
- Handle partial success responses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` exporters. (#3162, #3440)
@@ -847,7 +988,7 @@ This release includes an API and SDK for the tracing signal that will comply wit
- Setting the global `ErrorHandler` with `"go.opentelemetry.io/otel".SetErrorHandler` multiple times is now supported. (#2160, #2140)
- The `"go.opentelemetry.io/otel/attribute".Any` function now supports `int32` values. (#2169)
- Multiple calls to `"go.opentelemetry.io/otel/sdk/metric/controller/basic".WithResource()` are handled correctly, and when no resources are provided `"go.opentelemetry.io/otel/sdk/resource".Default()` is used. (#2120)
-- The `WithoutTimestamps` option for the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter causes the exporter to correctly ommit timestamps. (#2195)
+- The `WithoutTimestamps` option for the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter causes the exporter to correctly omit timestamps. (#2195)
- Fixed typos in resources.go. (#2201)
## [1.0.0-RC2] - 2021-07-26
@@ -1293,7 +1434,7 @@ with major version 0.
- `NewGRPCDriver` function returns a `ProtocolDriver` that maintains a single gRPC connection to the collector. (#1369)
- Added documentation about the project's versioning policy. (#1388)
- Added `NewSplitDriver` for OTLP exporter that allows sending traces and metrics to different endpoints. (#1418)
-- Added codeql worfklow to GitHub Actions (#1428)
+- Added codeql workflow to GitHub Actions (#1428)
- Added Gosec workflow to GitHub Actions (#1429)
- Add new HTTP driver for OTLP exporter in `exporters/otlp/otlphttp`. Currently it only supports the binary protobuf payloads. (#1420)
- Add an OpenCensus exporter bridge. (#1444)
@@ -2136,7 +2277,7 @@ There is still a possibility of breaking changes.
### Fixed
-- Use stateful batcher on Prometheus exporter fixing regresion introduced in #395. (#428)
+- Use stateful batcher on Prometheus exporter fixing regression introduced in #395. (#428)
## [0.2.1] - 2020-01-08
@@ -2302,7 +2443,11 @@ It contains api and sdk for trace and meter.
- CircleCI build CI manifest files.
- CODEOWNERS file to track owners of this project.
-[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.14.0...HEAD
+[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.15.1...HEAD
+[1.15.1/0.38.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.1
+[1.15.0/0.38.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0
+[1.15.0-rc.2/0.38.0-rc.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.2
+[1.15.0-rc.1/0.38.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.1
[1.14.0/0.37.0/0.0.4]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.14.0
[1.13.0/0.36.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.13.0
[1.12.0/0.35.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0
diff --git a/vendor/go.opentelemetry.io/otel/CODEOWNERS b/vendor/go.opentelemetry.io/otel/CODEOWNERS
index c4012ed6ca..f6f6a313b5 100644
--- a/vendor/go.opentelemetry.io/otel/CODEOWNERS
+++ b/vendor/go.opentelemetry.io/otel/CODEOWNERS
@@ -12,6 +12,6 @@
# https://help.github.com/en/articles/about-code-owners
#
-* @jmacd @MrAlias @Aneurysm9 @evantorrie @XSAM @dashpole @MadVikingGod @pellared @hanyuancheung @dmathieu
+* @MrAlias @Aneurysm9 @evantorrie @XSAM @dashpole @MadVikingGod @pellared @hanyuancheung @dmathieu
CODEOWNERS @MrAlias @Aneurysm9 @MadVikingGod
diff --git a/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md b/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md
index a6928bfdff..f521d65431 100644
--- a/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md
+++ b/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md
@@ -6,7 +6,7 @@ OpenTelemetry
repo for information on this and other language SIGs.
See the [public meeting
-notes](https://docs.google.com/document/d/1A63zSWX0x2CyCK_LoNhmQC4rqhLpYXJzXbEPDUQ2n6w/edit#heading=h.9tngw7jdwd6b)
+notes](https://docs.google.com/document/d/1E5e7Ld0NuU1iVvf-42tOBpu2VBBLYnh73GJuITGJTTU/edit)
for a summary description of past meetings. To request edit access,
join the meeting or get in touch on
[Slack](https://cloud-native.slack.com/archives/C01NPAXACKT).
@@ -94,30 +94,58 @@ request ID to the entry you added to `CHANGELOG.md`.
### How to Get PRs Merged
-A PR is considered to be **ready to merge** when:
-
-* It has received two approvals from Collaborators/Maintainers (at
- different companies). This is not enforced through technical means
- and a PR may be **ready to merge** with a single approval if the change
- and its approach have been discussed and consensus reached.
-* Feedback has been addressed.
-* Any substantive changes to your PR will require that you clear any prior
- Approval reviews, this includes changes resulting from other feedback. Unless
- the approver explicitly stated that their approval will persist across
- changes it should be assumed that the PR needs their review again. Other
- project members (e.g. approvers, maintainers) can help with this if there are
- any questions or if you forget to clear reviews.
-* It has been open for review for at least one working day. This gives
- people reasonable time to review.
-* Trivial changes (typo, cosmetic, doc, etc.) do not have to wait for
- one day and may be merged with a single Maintainer's approval.
-* `CHANGELOG.md` has been updated to reflect what has been
- added, changed, removed, or fixed.
-* `README.md` has been updated if necessary.
-* Urgent fix can take exception as long as it has been actively
- communicated.
-
-Any Maintainer can merge the PR once it is **ready to merge**.
+A PR is considered **ready to merge** when:
+
+* It has received two qualified approvals[^1].
+
+ This is not enforced through automation, but needs to be validated by the
+ maintainer merging.
+ * The qualified approvals need to be from [Approver]s/[Maintainer]s
+ affiliated with different companies. Two qualified approvals from
+ [Approver]s or [Maintainer]s affiliated with the same company counts as a
+ single qualified approval.
+ * PRs introducing changes that have already been discussed and consensus
+ reached only need one qualified approval. The discussion and resolution
+ needs to be linked to the PR.
+ * Trivial changes[^2] only need one qualified approval.
+
+* All feedback has been addressed.
+ * All PR comments and suggestions are resolved.
+ * All GitHub Pull Request reviews with a status of "Request changes" have
+ been addressed. Another review by the objecting reviewer with a different
+ status can be submitted to clear the original review, or the review can be
+ dismissed by a [Maintainer] when the issues from the original review have
+ been addressed.
+ * Any comments or reviews that cannot be resolved between the PR author and
+ reviewers can be submitted to the community [Approver]s and [Maintainer]s
+ during the weekly SIG meeting. If consensus is reached among the
+ [Approver]s and [Maintainer]s during the SIG meeting the objections to the
+ PR may be dismissed or resolved or the PR closed by a [Maintainer].
+ * Any substantive changes to the PR require existing Approval reviews be
+ cleared unless the approver explicitly states that their approval persists
+ across changes. This includes changes resulting from other feedback.
+ [Approver]s and [Maintainer]s can help in clearing reviews and they should
+ be consulted if there are any questions.
+
+* The PR branch is up to date with the base branch it is merging into.
+ * To ensure this does not block the PR, it should be configured to allow
+ maintainers to update it.
+
+* It has been open for review for at least one working day. This gives people
+ reasonable time to review.
+ * Trivial changes[^2] do not have to wait for one day and may be merged with
+ a single [Maintainer]'s approval.
+
+* All required GitHub workflows have succeeded.
+* Urgent fix can take exception as long as it has been actively communicated
+ among [Maintainer]s.
+
+Any [Maintainer] can merge the PR once the above criteria have been met.
+
+[^1]: A qualified approval is a GitHub Pull Request review with "Approve"
+ status from an OpenTelemetry Go [Approver] or [Maintainer].
+[^2]: Trivial changes include: typo corrections, cosmetic non-substantive
+ changes, documentation corrections or updates, dependency updates, etc.
## Design Choices
@@ -216,7 +244,7 @@ Meaning a `config` from one package should not be directly used by another. The
one exception is the API packages. The configs from the base API, eg.
`go.opentelemetry.io/otel/trace.TracerConfig` and
`go.opentelemetry.io/otel/metric.InstrumentConfig`, are intended to be consumed
-by the SDK therefor it is expected that these are exported.
+by the SDK therefore it is expected that these are exported.
When a config is exported we want to maintain forward and backward
compatibility, to achieve this no fields should be exported but should
@@ -234,12 +262,12 @@ func newConfig(options ...Option) config {
for _, option := range options {
config = option.apply(config)
}
- // Preform any validation here.
+ // Perform any validation here.
return config
}
```
-If validation of the `config` options is also preformed this can return an
+If validation of the `config` options is also performed this can return an
error as well that is expected to be handled by the instantiation function
or propagated to the user.
@@ -438,7 +466,7 @@ their parameters appropriately named.
#### Interface Stability
All exported stable interfaces that include the following warning in their
-doumentation are allowed to be extended with additional methods.
+documentation are allowed to be extended with additional methods.
> Warning: methods may be added to this interface in minor releases.
@@ -500,27 +528,30 @@ interface that defines the specific functionality should be preferred.
## Approvers and Maintainers
-Approvers:
+### Approvers
- [Evan Torrie](https://github.com/evantorrie), Verizon Media
-- [Josh MacDonald](https://github.com/jmacd), LightStep
- [Sam Xie](https://github.com/XSAM), Cisco/AppDynamics
- [David Ashpole](https://github.com/dashpole), Google
- [Robert Pająk](https://github.com/pellared), Splunk
- [Chester Cheung](https://github.com/hanyuancheung), Tencent
- [Damien Mathieu](https://github.com/dmathieu), Elastic
-Maintainers:
+### Maintainers
- [Aaron Clawson](https://github.com/MadVikingGod), LightStep
- [Anthony Mirabella](https://github.com/Aneurysm9), AWS
- [Tyler Yahn](https://github.com/MrAlias), Splunk
-Emeritus:
+### Emeritus
- [Gustavo Silva Paiva](https://github.com/paivagustavo), LightStep
+- [Josh MacDonald](https://github.com/jmacd), LightStep
### Become an Approver or a Maintainer
See the [community membership document in OpenTelemetry community
repo](https://github.com/open-telemetry/community/blob/main/community-membership.md).
+
+[Approver]: #approvers
+[Maintainer]: #maintainers
diff --git a/vendor/go.opentelemetry.io/otel/Makefile b/vendor/go.opentelemetry.io/otel/Makefile
index 0e6ffa284e..91ead91b41 100644
--- a/vendor/go.opentelemetry.io/otel/Makefile
+++ b/vendor/go.opentelemetry.io/otel/Makefile
@@ -156,7 +156,7 @@ go-mod-tidy/%: DIR=$*
go-mod-tidy/%: | crosslink
@echo "$(GO) mod tidy in $(DIR)" \
&& cd $(DIR) \
- && $(GO) mod tidy -compat=1.18
+ && $(GO) mod tidy -compat=1.19
.PHONY: lint-modules
lint-modules: go-mod-tidy
diff --git a/vendor/go.opentelemetry.io/otel/README.md b/vendor/go.opentelemetry.io/otel/README.md
index 878d87e58b..e138a8a07f 100644
--- a/vendor/go.opentelemetry.io/otel/README.md
+++ b/vendor/go.opentelemetry.io/otel/README.md
@@ -14,7 +14,7 @@ It provides a set of APIs to directly measure performance and behavior of your s
| Signal | Status | Project |
| ------- | ---------- | ------- |
| Traces | Stable | N/A |
-| Metrics | Alpha | N/A |
+| Metrics | Beta | N/A |
| Logs | Frozen [1] | N/A |
- [1]: The Logs signal development is halted for this project while we develop both Traces and Metrics.
@@ -52,19 +52,14 @@ Currently, this project supports the following environments.
| ------- | ---------- | ------------ |
| Ubuntu | 1.20 | amd64 |
| Ubuntu | 1.19 | amd64 |
-| Ubuntu | 1.18 | amd64 |
| Ubuntu | 1.20 | 386 |
| Ubuntu | 1.19 | 386 |
-| Ubuntu | 1.18 | 386 |
| MacOS | 1.20 | amd64 |
| MacOS | 1.19 | amd64 |
-| MacOS | 1.18 | amd64 |
| Windows | 1.20 | amd64 |
| Windows | 1.19 | amd64 |
-| Windows | 1.18 | amd64 |
| Windows | 1.20 | 386 |
| Windows | 1.19 | 386 |
-| Windows | 1.18 | 386 |
While this project should work for other systems, no compatibility guarantees
are made for those systems currently.
diff --git a/vendor/go.opentelemetry.io/otel/attribute/set.go b/vendor/go.opentelemetry.io/otel/attribute/set.go
index 26be598322..b976367e46 100644
--- a/vendor/go.opentelemetry.io/otel/attribute/set.go
+++ b/vendor/go.opentelemetry.io/otel/attribute/set.go
@@ -18,6 +18,7 @@ import (
"encoding/json"
"reflect"
"sort"
+ "sync"
)
type (
@@ -62,6 +63,12 @@ var (
iface: [0]KeyValue{},
},
}
+
+ // sortables is a pool of Sortables used to create Sets with a user does
+ // not provide one.
+ sortables = sync.Pool{
+ New: func() interface{} { return new(Sortable) },
+ }
)
// EmptySet returns a reference to a Set with no elements.
@@ -91,7 +98,7 @@ func (l *Set) Len() int {
// Get returns the KeyValue at ordered position idx in this set.
func (l *Set) Get(idx int) (KeyValue, bool) {
- if l == nil {
+ if l == nil || !l.equivalent.Valid() {
return KeyValue{}, false
}
value := l.equivalent.reflectValue()
@@ -107,7 +114,7 @@ func (l *Set) Get(idx int) (KeyValue, bool) {
// Value returns the value of a specified key in this set.
func (l *Set) Value(k Key) (Value, bool) {
- if l == nil {
+ if l == nil || !l.equivalent.Valid() {
return Value{}, false
}
rValue := l.equivalent.reflectValue()
@@ -191,7 +198,9 @@ func NewSet(kvs ...KeyValue) Set {
if len(kvs) == 0 {
return empty()
}
- s, _ := NewSetWithSortableFiltered(kvs, new(Sortable), nil)
+ srt := sortables.Get().(*Sortable)
+ s, _ := NewSetWithSortableFiltered(kvs, srt, nil)
+ sortables.Put(srt)
return s
}
@@ -218,7 +227,10 @@ func NewSetWithFiltered(kvs []KeyValue, filter Filter) (Set, []KeyValue) {
if len(kvs) == 0 {
return empty(), nil
}
- return NewSetWithSortableFiltered(kvs, new(Sortable), filter)
+ srt := sortables.Get().(*Sortable)
+ s, filtered := NewSetWithSortableFiltered(kvs, srt, filter)
+ sortables.Put(srt)
+ return s, filtered
}
// NewSetWithSortableFiltered returns a new Set.
diff --git a/vendor/go.opentelemetry.io/otel/handler.go b/vendor/go.opentelemetry.io/otel/handler.go
index ecd363ab51..4115fe3bbb 100644
--- a/vendor/go.opentelemetry.io/otel/handler.go
+++ b/vendor/go.opentelemetry.io/otel/handler.go
@@ -15,58 +15,16 @@
package otel // import "go.opentelemetry.io/otel"
import (
- "log"
- "os"
- "sync/atomic"
- "unsafe"
+ "go.opentelemetry.io/otel/internal/global"
)
var (
- // globalErrorHandler provides an ErrorHandler that can be used
- // throughout an OpenTelemetry instrumented project. When a user
- // specified ErrorHandler is registered (`SetErrorHandler`) all calls to
- // `Handle` and will be delegated to the registered ErrorHandler.
- globalErrorHandler = defaultErrorHandler()
-
- // Compile-time check that delegator implements ErrorHandler.
- _ ErrorHandler = (*delegator)(nil)
- // Compile-time check that errLogger implements ErrorHandler.
- _ ErrorHandler = (*errLogger)(nil)
+ // Compile-time check global.ErrDelegator implements ErrorHandler.
+ _ ErrorHandler = (*global.ErrDelegator)(nil)
+ // Compile-time check global.ErrLogger implements ErrorHandler.
+ _ ErrorHandler = (*global.ErrLogger)(nil)
)
-type delegator struct {
- delegate unsafe.Pointer
-}
-
-func (d *delegator) Handle(err error) {
- d.getDelegate().Handle(err)
-}
-
-func (d *delegator) getDelegate() ErrorHandler {
- return *(*ErrorHandler)(atomic.LoadPointer(&d.delegate))
-}
-
-// setDelegate sets the ErrorHandler delegate.
-func (d *delegator) setDelegate(eh ErrorHandler) {
- atomic.StorePointer(&d.delegate, unsafe.Pointer(&eh))
-}
-
-func defaultErrorHandler() *delegator {
- d := &delegator{}
- d.setDelegate(&errLogger{l: log.New(os.Stderr, "", log.LstdFlags)})
- return d
-}
-
-// errLogger logs errors if no delegate is set, otherwise they are delegated.
-type errLogger struct {
- l *log.Logger
-}
-
-// Handle logs err if no delegate is set, otherwise it is delegated.
-func (h *errLogger) Handle(err error) {
- h.l.Print(err)
-}
-
// GetErrorHandler returns the global ErrorHandler instance.
//
// The default ErrorHandler instance returned will log all errors to STDERR
@@ -76,9 +34,7 @@ func (h *errLogger) Handle(err error) {
//
// Subsequent calls to SetErrorHandler after the first will not forward errors
// to the new ErrorHandler for prior returned instances.
-func GetErrorHandler() ErrorHandler {
- return globalErrorHandler
-}
+func GetErrorHandler() ErrorHandler { return global.GetErrorHandler() }
// SetErrorHandler sets the global ErrorHandler to h.
//
@@ -86,11 +42,7 @@ func GetErrorHandler() ErrorHandler {
// GetErrorHandler will send errors to h instead of the default logging
// ErrorHandler. Subsequent calls will set the global ErrorHandler, but not
// delegate errors to h.
-func SetErrorHandler(h ErrorHandler) {
- globalErrorHandler.setDelegate(h)
-}
+func SetErrorHandler(h ErrorHandler) { global.SetErrorHandler(h) }
// Handle is a convenience function for ErrorHandler().Handle(err).
-func Handle(err error) {
- GetErrorHandler().Handle(err)
-}
+func Handle(err error) { global.Handle(err) }
diff --git a/vendor/go.opentelemetry.io/otel/internal/global/handler.go b/vendor/go.opentelemetry.io/otel/internal/global/handler.go
new file mode 100644
index 0000000000..3dcd1caae6
--- /dev/null
+++ b/vendor/go.opentelemetry.io/otel/internal/global/handler.go
@@ -0,0 +1,103 @@
+// Copyright The OpenTelemetry Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package global // import "go.opentelemetry.io/otel/internal/global"
+
+import (
+ "log"
+ "os"
+ "sync/atomic"
+ "unsafe"
+)
+
+var (
+ // GlobalErrorHandler provides an ErrorHandler that can be used
+ // throughout an OpenTelemetry instrumented project. When a user
+ // specified ErrorHandler is registered (`SetErrorHandler`) all calls to
+ // `Handle` and will be delegated to the registered ErrorHandler.
+ GlobalErrorHandler = defaultErrorHandler()
+
+ // Compile-time check that delegator implements ErrorHandler.
+ _ ErrorHandler = (*ErrDelegator)(nil)
+ // Compile-time check that errLogger implements ErrorHandler.
+ _ ErrorHandler = (*ErrLogger)(nil)
+)
+
+// ErrorHandler handles irremediable events.
+type ErrorHandler interface {
+ // Handle handles any error deemed irremediable by an OpenTelemetry
+ // component.
+ Handle(error)
+}
+
+type ErrDelegator struct {
+ delegate unsafe.Pointer
+}
+
+func (d *ErrDelegator) Handle(err error) {
+ d.getDelegate().Handle(err)
+}
+
+func (d *ErrDelegator) getDelegate() ErrorHandler {
+ return *(*ErrorHandler)(atomic.LoadPointer(&d.delegate))
+}
+
+// setDelegate sets the ErrorHandler delegate.
+func (d *ErrDelegator) setDelegate(eh ErrorHandler) {
+ atomic.StorePointer(&d.delegate, unsafe.Pointer(&eh))
+}
+
+func defaultErrorHandler() *ErrDelegator {
+ d := &ErrDelegator{}
+ d.setDelegate(&ErrLogger{l: log.New(os.Stderr, "", log.LstdFlags)})
+ return d
+}
+
+// ErrLogger logs errors if no delegate is set, otherwise they are delegated.
+type ErrLogger struct {
+ l *log.Logger
+}
+
+// Handle logs err if no delegate is set, otherwise it is delegated.
+func (h *ErrLogger) Handle(err error) {
+ h.l.Print(err)
+}
+
+// GetErrorHandler returns the global ErrorHandler instance.
+//
+// The default ErrorHandler instance returned will log all errors to STDERR
+// until an override ErrorHandler is set with SetErrorHandler. All
+// ErrorHandler returned prior to this will automatically forward errors to
+// the set instance instead of logging.
+//
+// Subsequent calls to SetErrorHandler after the first will not forward errors
+// to the new ErrorHandler for prior returned instances.
+func GetErrorHandler() ErrorHandler {
+ return GlobalErrorHandler
+}
+
+// SetErrorHandler sets the global ErrorHandler to h.
+//
+// The first time this is called all ErrorHandler previously returned from
+// GetErrorHandler will send errors to h instead of the default logging
+// ErrorHandler. Subsequent calls will set the global ErrorHandler, but not
+// delegate errors to h.
+func SetErrorHandler(h ErrorHandler) {
+ GlobalErrorHandler.setDelegate(h)
+}
+
+// Handle is a convenience function for ErrorHandler().Handle(err).
+func Handle(err error) {
+ GetErrorHandler().Handle(err)
+}
diff --git a/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go b/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go
index 293c08961f..5951fd06d4 100644
--- a/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go
+++ b/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go
@@ -24,7 +24,7 @@ import (
"github.com/go-logr/stdr"
)
-// globalLogger is the logging interface used within the otel api and sdk provide deatails of the internals.
+// globalLogger is the logging interface used within the otel api and sdk provide details of the internals.
//
// The default logger uses stdr which is backed by the standard `log.Logger`
// interface. This logger will only show messages at the Error Level.
@@ -36,8 +36,9 @@ func init() {
// SetLogger overrides the globalLogger with l.
//
-// To see Info messages use a logger with `l.V(1).Enabled() == true`
-// To see Debug messages use a logger with `l.V(5).Enabled() == true`.
+// To see Warn messages use a logger with `l.V(1).Enabled() == true`
+// To see Info messages use a logger with `l.V(4).Enabled() == true`
+// To see Debug messages use a logger with `l.V(8).Enabled() == true`.
func SetLogger(l logr.Logger) {
atomic.StorePointer(&globalLogger, unsafe.Pointer(&l))
}
@@ -47,9 +48,9 @@ func getLogger() logr.Logger {
}
// Info prints messages about the general state of the API or SDK.
-// This should usually be less then 5 messages a minute.
+// This should usually be less than 5 messages a minute.
func Info(msg string, keysAndValues ...interface{}) {
- getLogger().V(1).Info(msg, keysAndValues...)
+ getLogger().V(4).Info(msg, keysAndValues...)
}
// Error prints messages about exceptional states of the API or SDK.
@@ -59,5 +60,11 @@ func Error(err error, msg string, keysAndValues ...interface{}) {
// Debug prints messages about all internal changes in the API or SDK.
func Debug(msg string, keysAndValues ...interface{}) {
- getLogger().V(5).Info(msg, keysAndValues...)
+ getLogger().V(8).Info(msg, keysAndValues...)
+}
+
+// Warn prints messages about warnings in the API or SDK.
+// Not an error but is likely more important than an informational event.
+func Warn(msg string, keysAndValues ...interface{}) {
+ getLogger().V(1).Info(msg, keysAndValues...)
}
diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go b/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go
index c60b2a6bb6..fc43808fe4 100644
--- a/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go
+++ b/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go
@@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// Package httpconv provides OpenTelemetry semantic convetions for the net/http
-// package from the standard library.
+// Package httpconv provides OpenTelemetry HTTP semantic conventions for
+// tracing telemetry.
package httpconv // import "go.opentelemetry.io/otel/semconv/v1.17.0/httpconv"
import (
@@ -58,9 +58,10 @@ var (
}
)
-// ClientResponse returns attributes for an HTTP response received by a client
-// from a server. It will return the following attributes if the related values
-// are defined in resp: "http.status.code", "http.response_content_length".
+// ClientResponse returns trace attributes for an HTTP response received by a
+// client from a server. It will return the following attributes if the related
+// values are defined in resp: "http.status.code",
+// "http.response_content_length".
//
// This does not add all OpenTelemetry required attributes for an HTTP event,
// it assumes ClientRequest was used to create the span with a complete set of
@@ -72,8 +73,8 @@ func ClientResponse(resp *http.Response) []attribute.KeyValue {
return hc.ClientResponse(resp)
}
-// ClientRequest returns attributes for an HTTP request made by a client. The
-// following attributes are always returned: "http.url", "http.flavor",
+// ClientRequest returns trace attributes for an HTTP request made by a client.
+// The following attributes are always returned: "http.url", "http.flavor",
// "http.method", "net.peer.name". The following attributes are returned if the
// related values are defined in req: "net.peer.port", "http.user_agent",
// "http.request_content_length", "enduser.id".
@@ -87,7 +88,8 @@ func ClientStatus(code int) (codes.Code, string) {
return hc.ClientStatus(code)
}
-// ServerRequest returns attributes for an HTTP request received by a server.
+// ServerRequest returns trace attributes for an HTTP request received by a
+// server.
//
// The server must be the primary server name if it is known. For example this
// would be the ServerName directive
diff --git a/vendor/go.opentelemetry.io/otel/trace/noop.go b/vendor/go.opentelemetry.io/otel/trace/noop.go
index 73950f2077..7cf6c7f3ef 100644
--- a/vendor/go.opentelemetry.io/otel/trace/noop.go
+++ b/vendor/go.opentelemetry.io/otel/trace/noop.go
@@ -37,7 +37,7 @@ func (p noopTracerProvider) Tracer(string, ...TracerOption) Tracer {
return noopTracer{}
}
-// noopTracer is an implementation of Tracer that preforms no operations.
+// noopTracer is an implementation of Tracer that performs no operations.
type noopTracer struct{}
var _ Tracer = noopTracer{}
@@ -53,7 +53,7 @@ func (t noopTracer) Start(ctx context.Context, name string, _ ...SpanStartOption
return ContextWithSpan(ctx, span), span
}
-// noopSpan is an implementation of Span that preforms no operations.
+// noopSpan is an implementation of Span that performs no operations.
type noopSpan struct{}
var _ Span = noopSpan{}
diff --git a/vendor/go.opentelemetry.io/otel/version.go b/vendor/go.opentelemetry.io/otel/version.go
index 0e8e5e0232..6c7fe114bb 100644
--- a/vendor/go.opentelemetry.io/otel/version.go
+++ b/vendor/go.opentelemetry.io/otel/version.go
@@ -16,5 +16,5 @@ package otel // import "go.opentelemetry.io/otel"
// Version is the current release version of OpenTelemetry in use.
func Version() string {
- return "1.14.0"
+ return "1.15.1"
}
diff --git a/vendor/go.opentelemetry.io/otel/versions.yaml b/vendor/go.opentelemetry.io/otel/versions.yaml
index 40df1fae41..b49ec10296 100644
--- a/vendor/go.opentelemetry.io/otel/versions.yaml
+++ b/vendor/go.opentelemetry.io/otel/versions.yaml
@@ -14,7 +14,7 @@
module-sets:
stable-v1:
- version: v1.14.0
+ version: v1.15.1
modules:
- go.opentelemetry.io/otel
- go.opentelemetry.io/otel/bridge/opentracing
@@ -26,16 +26,16 @@ module-sets:
- go.opentelemetry.io/otel/example/passthrough
- go.opentelemetry.io/otel/example/zipkin
- go.opentelemetry.io/otel/exporters/jaeger
- - go.opentelemetry.io/otel/exporters/zipkin
+ - go.opentelemetry.io/otel/exporters/otlp/internal/retry
- go.opentelemetry.io/otel/exporters/otlp/otlptrace
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
- - go.opentelemetry.io/otel/exporters/otlp/internal/retry
- go.opentelemetry.io/otel/exporters/stdout/stdouttrace
- - go.opentelemetry.io/otel/trace
+ - go.opentelemetry.io/otel/exporters/zipkin
- go.opentelemetry.io/otel/sdk
+ - go.opentelemetry.io/otel/trace
experimental-metrics:
- version: v0.37.0
+ version: v0.38.1
modules:
- go.opentelemetry.io/otel/example/opencensus
- go.opentelemetry.io/otel/example/prometheus
diff --git a/vendor/golang.org/x/crypto/cryptobyte/asn1.go b/vendor/golang.org/x/crypto/cryptobyte/asn1.go
index 3141a7f1b9..6fc2838a3f 100644
--- a/vendor/golang.org/x/crypto/cryptobyte/asn1.go
+++ b/vendor/golang.org/x/crypto/cryptobyte/asn1.go
@@ -431,6 +431,14 @@ func (s *String) readBase128Int(out *int) bool {
}
ret <<= 7
b := s.read(1)[0]
+
+ // ITU-T X.690, section 8.19.2:
+ // The subidentifier shall be encoded in the fewest possible octets,
+ // that is, the leading octet of the subidentifier shall not have the value 0x80.
+ if i == 0 && b == 0x80 {
+ return false
+ }
+
ret |= int(b & 0x7f)
if b&0x80 == 0 {
*out = ret
diff --git a/vendor/google.golang.org/protobuf/types/known/fieldmaskpb/field_mask.pb.go b/vendor/google.golang.org/protobuf/types/known/fieldmaskpb/field_mask.pb.go
new file mode 100644
index 0000000000..e8789cb331
--- /dev/null
+++ b/vendor/google.golang.org/protobuf/types/known/fieldmaskpb/field_mask.pb.go
@@ -0,0 +1,588 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/protobuf/field_mask.proto
+
+// Package fieldmaskpb contains generated types for google/protobuf/field_mask.proto.
+//
+// The FieldMask message represents a set of symbolic field paths.
+// The paths are specific to some target message type,
+// which is not stored within the FieldMask message itself.
+//
+// # Constructing a FieldMask
+//
+// The New function is used construct a FieldMask:
+//
+// var messageType *descriptorpb.DescriptorProto
+// fm, err := fieldmaskpb.New(messageType, "field.name", "field.number")
+// if err != nil {
+// ... // handle error
+// }
+// ... // make use of fm
+//
+// The "field.name" and "field.number" paths are valid paths according to the
+// google.protobuf.DescriptorProto message. Use of a path that does not correlate
+// to valid fields reachable from DescriptorProto would result in an error.
+//
+// Once a FieldMask message has been constructed,
+// the Append method can be used to insert additional paths to the path set:
+//
+// var messageType *descriptorpb.DescriptorProto
+// if err := fm.Append(messageType, "options"); err != nil {
+// ... // handle error
+// }
+//
+// # Type checking a FieldMask
+//
+// In order to verify that a FieldMask represents a set of fields that are
+// reachable from some target message type, use the IsValid method:
+//
+// var messageType *descriptorpb.DescriptorProto
+// if fm.IsValid(messageType) {
+// ... // make use of fm
+// }
+//
+// IsValid needs to be passed the target message type as an input since the
+// FieldMask message itself does not store the message type that the set of paths
+// are for.
+package fieldmaskpb
+
+import (
+ proto "google.golang.org/protobuf/proto"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sort "sort"
+ strings "strings"
+ sync "sync"
+)
+
+// `FieldMask` represents a set of symbolic field paths, for example:
+//
+// paths: "f.a"
+// paths: "f.b.d"
+//
+// Here `f` represents a field in some root message, `a` and `b`
+// fields in the message found in `f`, and `d` a field found in the
+// message in `f.b`.
+//
+// Field masks are used to specify a subset of fields that should be
+// returned by a get operation or modified by an update operation.
+// Field masks also have a custom JSON encoding (see below).
+//
+// # Field Masks in Projections
+//
+// When used in the context of a projection, a response message or
+// sub-message is filtered by the API to only contain those fields as
+// specified in the mask. For example, if the mask in the previous
+// example is applied to a response message as follows:
+//
+// f {
+// a : 22
+// b {
+// d : 1
+// x : 2
+// }
+// y : 13
+// }
+// z: 8
+//
+// The result will not contain specific values for fields x,y and z
+// (their value will be set to the default, and omitted in proto text
+// output):
+//
+// f {
+// a : 22
+// b {
+// d : 1
+// }
+// }
+//
+// A repeated field is not allowed except at the last position of a
+// paths string.
+//
+// If a FieldMask object is not present in a get operation, the
+// operation applies to all fields (as if a FieldMask of all fields
+// had been specified).
+//
+// Note that a field mask does not necessarily apply to the
+// top-level response message. In case of a REST get operation, the
+// field mask applies directly to the response, but in case of a REST
+// list operation, the mask instead applies to each individual message
+// in the returned resource list. In case of a REST custom method,
+// other definitions may be used. Where the mask applies will be
+// clearly documented together with its declaration in the API. In
+// any case, the effect on the returned resource/resources is required
+// behavior for APIs.
+//
+// # Field Masks in Update Operations
+//
+// A field mask in update operations specifies which fields of the
+// targeted resource are going to be updated. The API is required
+// to only change the values of the fields as specified in the mask
+// and leave the others untouched. If a resource is passed in to
+// describe the updated values, the API ignores the values of all
+// fields not covered by the mask.
+//
+// If a repeated field is specified for an update operation, new values will
+// be appended to the existing repeated field in the target resource. Note that
+// a repeated field is only allowed in the last position of a `paths` string.
+//
+// If a sub-message is specified in the last position of the field mask for an
+// update operation, then new value will be merged into the existing sub-message
+// in the target resource.
+//
+// For example, given the target message:
+//
+// f {
+// b {
+// d: 1
+// x: 2
+// }
+// c: [1]
+// }
+//
+// And an update message:
+//
+// f {
+// b {
+// d: 10
+// }
+// c: [2]
+// }
+//
+// then if the field mask is:
+//
+// paths: ["f.b", "f.c"]
+//
+// then the result will be:
+//
+// f {
+// b {
+// d: 10
+// x: 2
+// }
+// c: [1, 2]
+// }
+//
+// An implementation may provide options to override this default behavior for
+// repeated and message fields.
+//
+// In order to reset a field's value to the default, the field must
+// be in the mask and set to the default value in the provided resource.
+// Hence, in order to reset all fields of a resource, provide a default
+// instance of the resource and set all fields in the mask, or do
+// not provide a mask as described below.
+//
+// If a field mask is not present on update, the operation applies to
+// all fields (as if a field mask of all fields has been specified).
+// Note that in the presence of schema evolution, this may mean that
+// fields the client does not know and has therefore not filled into
+// the request will be reset to their default. If this is unwanted
+// behavior, a specific service may require a client to always specify
+// a field mask, producing an error if not.
+//
+// As with get operations, the location of the resource which
+// describes the updated values in the request message depends on the
+// operation kind. In any case, the effect of the field mask is
+// required to be honored by the API.
+//
+// ## Considerations for HTTP REST
+//
+// The HTTP kind of an update operation which uses a field mask must
+// be set to PATCH instead of PUT in order to satisfy HTTP semantics
+// (PUT must only be used for full updates).
+//
+// # JSON Encoding of Field Masks
+//
+// In JSON, a field mask is encoded as a single string where paths are
+// separated by a comma. Fields name in each path are converted
+// to/from lower-camel naming conventions.
+//
+// As an example, consider the following message declarations:
+//
+// message Profile {
+// User user = 1;
+// Photo photo = 2;
+// }
+// message User {
+// string display_name = 1;
+// string address = 2;
+// }
+//
+// In proto a field mask for `Profile` may look as such:
+//
+// mask {
+// paths: "user.display_name"
+// paths: "photo"
+// }
+//
+// In JSON, the same mask is represented as below:
+//
+// {
+// mask: "user.displayName,photo"
+// }
+//
+// # Field Masks and Oneof Fields
+//
+// Field masks treat fields in oneofs just as regular fields. Consider the
+// following message:
+//
+// message SampleMessage {
+// oneof test_oneof {
+// string name = 4;
+// SubMessage sub_message = 9;
+// }
+// }
+//
+// The field mask can be:
+//
+// mask {
+// paths: "name"
+// }
+//
+// Or:
+//
+// mask {
+// paths: "sub_message"
+// }
+//
+// Note that oneof type names ("test_oneof" in this case) cannot be used in
+// paths.
+//
+// ## Field Mask Verification
+//
+// The implementation of any API method which has a FieldMask type field in the
+// request should verify the included field paths, and return an
+// `INVALID_ARGUMENT` error if any path is unmappable.
+type FieldMask struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The set of field mask paths.
+ Paths []string `protobuf:"bytes,1,rep,name=paths,proto3" json:"paths,omitempty"`
+}
+
+// New constructs a field mask from a list of paths and verifies that
+// each one is valid according to the specified message type.
+func New(m proto.Message, paths ...string) (*FieldMask, error) {
+ x := new(FieldMask)
+ return x, x.Append(m, paths...)
+}
+
+// Union returns the union of all the paths in the input field masks.
+func Union(mx *FieldMask, my *FieldMask, ms ...*FieldMask) *FieldMask {
+ var out []string
+ out = append(out, mx.GetPaths()...)
+ out = append(out, my.GetPaths()...)
+ for _, m := range ms {
+ out = append(out, m.GetPaths()...)
+ }
+ return &FieldMask{Paths: normalizePaths(out)}
+}
+
+// Intersect returns the intersection of all the paths in the input field masks.
+func Intersect(mx *FieldMask, my *FieldMask, ms ...*FieldMask) *FieldMask {
+ var ss1, ss2 []string // reused buffers for performance
+ intersect := func(out, in []string) []string {
+ ss1 = normalizePaths(append(ss1[:0], in...))
+ ss2 = normalizePaths(append(ss2[:0], out...))
+ out = out[:0]
+ for i1, i2 := 0, 0; i1 < len(ss1) && i2 < len(ss2); {
+ switch s1, s2 := ss1[i1], ss2[i2]; {
+ case hasPathPrefix(s1, s2):
+ out = append(out, s1)
+ i1++
+ case hasPathPrefix(s2, s1):
+ out = append(out, s2)
+ i2++
+ case lessPath(s1, s2):
+ i1++
+ case lessPath(s2, s1):
+ i2++
+ }
+ }
+ return out
+ }
+
+ out := Union(mx, my, ms...).GetPaths()
+ out = intersect(out, mx.GetPaths())
+ out = intersect(out, my.GetPaths())
+ for _, m := range ms {
+ out = intersect(out, m.GetPaths())
+ }
+ return &FieldMask{Paths: normalizePaths(out)}
+}
+
+// IsValid reports whether all the paths are syntactically valid and
+// refer to known fields in the specified message type.
+// It reports false for a nil FieldMask.
+func (x *FieldMask) IsValid(m proto.Message) bool {
+ paths := x.GetPaths()
+ return x != nil && numValidPaths(m, paths) == len(paths)
+}
+
+// Append appends a list of paths to the mask and verifies that each one
+// is valid according to the specified message type.
+// An invalid path is not appended and breaks insertion of subsequent paths.
+func (x *FieldMask) Append(m proto.Message, paths ...string) error {
+ numValid := numValidPaths(m, paths)
+ x.Paths = append(x.Paths, paths[:numValid]...)
+ paths = paths[numValid:]
+ if len(paths) > 0 {
+ name := m.ProtoReflect().Descriptor().FullName()
+ return protoimpl.X.NewError("invalid path %q for message %q", paths[0], name)
+ }
+ return nil
+}
+
+func numValidPaths(m proto.Message, paths []string) int {
+ md0 := m.ProtoReflect().Descriptor()
+ for i, path := range paths {
+ md := md0
+ if !rangeFields(path, func(field string) bool {
+ // Search the field within the message.
+ if md == nil {
+ return false // not within a message
+ }
+ fd := md.Fields().ByName(protoreflect.Name(field))
+ // The real field name of a group is the message name.
+ if fd == nil {
+ gd := md.Fields().ByName(protoreflect.Name(strings.ToLower(field)))
+ if gd != nil && gd.Kind() == protoreflect.GroupKind && string(gd.Message().Name()) == field {
+ fd = gd
+ }
+ } else if fd.Kind() == protoreflect.GroupKind && string(fd.Message().Name()) != field {
+ fd = nil
+ }
+ if fd == nil {
+ return false // message has does not have this field
+ }
+
+ // Identify the next message to search within.
+ md = fd.Message() // may be nil
+
+ // Repeated fields are only allowed at the last position.
+ if fd.IsList() || fd.IsMap() {
+ md = nil
+ }
+
+ return true
+ }) {
+ return i
+ }
+ }
+ return len(paths)
+}
+
+// Normalize converts the mask to its canonical form where all paths are sorted
+// and redundant paths are removed.
+func (x *FieldMask) Normalize() {
+ x.Paths = normalizePaths(x.Paths)
+}
+
+func normalizePaths(paths []string) []string {
+ sort.Slice(paths, func(i, j int) bool {
+ return lessPath(paths[i], paths[j])
+ })
+
+ // Elide any path that is a prefix match on the previous.
+ out := paths[:0]
+ for _, path := range paths {
+ if len(out) > 0 && hasPathPrefix(path, out[len(out)-1]) {
+ continue
+ }
+ out = append(out, path)
+ }
+ return out
+}
+
+// hasPathPrefix is like strings.HasPrefix, but further checks for either
+// an exact matche or that the prefix is delimited by a dot.
+func hasPathPrefix(path, prefix string) bool {
+ return strings.HasPrefix(path, prefix) && (len(path) == len(prefix) || path[len(prefix)] == '.')
+}
+
+// lessPath is a lexicographical comparison where dot is specially treated
+// as the smallest symbol.
+func lessPath(x, y string) bool {
+ for i := 0; i < len(x) && i < len(y); i++ {
+ if x[i] != y[i] {
+ return (x[i] - '.') < (y[i] - '.')
+ }
+ }
+ return len(x) < len(y)
+}
+
+// rangeFields is like strings.Split(path, "."), but avoids allocations by
+// iterating over each field in place and calling a iterator function.
+func rangeFields(path string, f func(field string) bool) bool {
+ for {
+ var field string
+ if i := strings.IndexByte(path, '.'); i >= 0 {
+ field, path = path[:i], path[i:]
+ } else {
+ field, path = path, ""
+ }
+
+ if !f(field) {
+ return false
+ }
+
+ if len(path) == 0 {
+ return true
+ }
+ path = strings.TrimPrefix(path, ".")
+ }
+}
+
+func (x *FieldMask) Reset() {
+ *x = FieldMask{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_protobuf_field_mask_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FieldMask) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FieldMask) ProtoMessage() {}
+
+func (x *FieldMask) ProtoReflect() protoreflect.Message {
+ mi := &file_google_protobuf_field_mask_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use FieldMask.ProtoReflect.Descriptor instead.
+func (*FieldMask) Descriptor() ([]byte, []int) {
+ return file_google_protobuf_field_mask_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *FieldMask) GetPaths() []string {
+ if x != nil {
+ return x.Paths
+ }
+ return nil
+}
+
+var File_google_protobuf_field_mask_proto protoreflect.FileDescriptor
+
+var file_google_protobuf_field_mask_proto_rawDesc = []byte{
+ 0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x22, 0x21, 0x0a, 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b,
+ 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x42, 0x85, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0e,
+ 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
+ 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e,
+ 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70,
+ 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6d, 0x61,
+ 0x73, 0x6b, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_protobuf_field_mask_proto_rawDescOnce sync.Once
+ file_google_protobuf_field_mask_proto_rawDescData = file_google_protobuf_field_mask_proto_rawDesc
+)
+
+func file_google_protobuf_field_mask_proto_rawDescGZIP() []byte {
+ file_google_protobuf_field_mask_proto_rawDescOnce.Do(func() {
+ file_google_protobuf_field_mask_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_field_mask_proto_rawDescData)
+ })
+ return file_google_protobuf_field_mask_proto_rawDescData
+}
+
+var file_google_protobuf_field_mask_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_google_protobuf_field_mask_proto_goTypes = []interface{}{
+ (*FieldMask)(nil), // 0: google.protobuf.FieldMask
+}
+var file_google_protobuf_field_mask_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_google_protobuf_field_mask_proto_init() }
+func file_google_protobuf_field_mask_proto_init() {
+ if File_google_protobuf_field_mask_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_protobuf_field_mask_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*FieldMask); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_protobuf_field_mask_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_protobuf_field_mask_proto_goTypes,
+ DependencyIndexes: file_google_protobuf_field_mask_proto_depIdxs,
+ MessageInfos: file_google_protobuf_field_mask_proto_msgTypes,
+ }.Build()
+ File_google_protobuf_field_mask_proto = out.File
+ file_google_protobuf_field_mask_proto_rawDesc = nil
+ file_google_protobuf_field_mask_proto_goTypes = nil
+ file_google_protobuf_field_mask_proto_depIdxs = nil
+}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 0c5a78a0a2..b61feedf92 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -52,7 +52,7 @@ github.com/chai2010/gettext-go/po
# github.com/cilium/charts v0.0.0-20230526205117-9c16d4d680bb
## explicit; go 1.17
github.com/cilium/charts
-# github.com/cilium/cilium v1.14.0-snapshot.2
+# github.com/cilium/cilium v1.14.0-snapshot.3
## explicit; go 1.20
github.com/cilium/cilium/api/v1/client
github.com/cilium/cilium/api/v1/client/bgp
@@ -339,7 +339,7 @@ github.com/go-openapi/jsonreference/internal
# github.com/go-openapi/loads v0.21.2
## explicit; go 1.13
github.com/go-openapi/loads
-# github.com/go-openapi/runtime v0.25.0
+# github.com/go-openapi/runtime v0.26.0
## explicit; go 1.18
github.com/go-openapi/runtime
github.com/go-openapi/runtime/client
@@ -667,7 +667,7 @@ github.com/russross/blackfriday/v2
# github.com/sasha-s/go-deadlock v0.3.1
## explicit
github.com/sasha-s/go-deadlock
-# github.com/shirou/gopsutil/v3 v3.23.2
+# github.com/shirou/gopsutil/v3 v3.23.4
## explicit; go 1.15
github.com/shirou/gopsutil/v3/internal/common
github.com/shirou/gopsutil/v3/mem
@@ -725,7 +725,7 @@ github.com/ulikunitz/xz
github.com/ulikunitz/xz/internal/hash
github.com/ulikunitz/xz/internal/xlog
github.com/ulikunitz/xz/lzma
-# github.com/vishvananda/netlink v1.2.1-beta.2.0.20220608195807-1a118fe229fc
+# github.com/vishvananda/netlink v1.2.1-beta.2.0.20230420174744-55c8b9515a01
## explicit; go 1.12
github.com/vishvananda/netlink
github.com/vishvananda/netlink/nl
@@ -783,8 +783,8 @@ go.mongodb.org/mongo-driver/bson/bsonrw
go.mongodb.org/mongo-driver/bson/bsontype
go.mongodb.org/mongo-driver/bson/primitive
go.mongodb.org/mongo-driver/x/bsonx/bsoncore
-# go.opentelemetry.io/otel v1.14.0
-## explicit; go 1.18
+# go.opentelemetry.io/otel v1.15.1
+## explicit; go 1.19
go.opentelemetry.io/otel
go.opentelemetry.io/otel/attribute
go.opentelemetry.io/otel/baggage
@@ -799,8 +799,8 @@ go.opentelemetry.io/otel/semconv/internal/v2
go.opentelemetry.io/otel/semconv/v1.12.0
go.opentelemetry.io/otel/semconv/v1.17.0
go.opentelemetry.io/otel/semconv/v1.17.0/httpconv
-# go.opentelemetry.io/otel/trace v1.14.0
-## explicit; go 1.18
+# go.opentelemetry.io/otel/trace v1.15.1
+## explicit; go 1.19
go.opentelemetry.io/otel/trace
# go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5
## explicit; go 1.13
@@ -810,7 +810,7 @@ go.starlark.net/resolve
go.starlark.net/starlark
go.starlark.net/starlarkstruct
go.starlark.net/syntax
-# golang.org/x/crypto v0.8.0
+# golang.org/x/crypto v0.9.0
## explicit; go 1.17
golang.org/x/crypto/bcrypt
golang.org/x/crypto/blowfish
@@ -853,7 +853,7 @@ golang.org/x/net/trace
## explicit; go 1.17
golang.org/x/oauth2
golang.org/x/oauth2/internal
-# golang.org/x/sync v0.1.0
+# golang.org/x/sync v0.2.0
## explicit
golang.org/x/sync/errgroup
golang.org/x/sync/semaphore
@@ -979,6 +979,7 @@ google.golang.org/protobuf/types/descriptorpb
google.golang.org/protobuf/types/known/anypb
google.golang.org/protobuf/types/known/durationpb
google.golang.org/protobuf/types/known/emptypb
+google.golang.org/protobuf/types/known/fieldmaskpb
google.golang.org/protobuf/types/known/structpb
google.golang.org/protobuf/types/known/timestamppb
google.golang.org/protobuf/types/known/wrapperspb