summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--api/attribute.pb.go1180
-rw-r--r--api/attribute.proto130
2 files changed, 1019 insertions, 291 deletions
diff --git a/api/attribute.pb.go b/api/attribute.pb.go
index 6b3c35f2..24dc3114 100644
--- a/api/attribute.pb.go
+++ b/api/attribute.pb.go
@@ -34,6 +34,7 @@ It has these top-level messages:
EVPNEthernetSegmentRoute
EVPNIPPrefixRoute
EVPNIPMSIRoute
+ SRPolicyNLRI
LabeledVPNIPAddressPrefix
RouteTargetMembershipNLRI
FlowSpecIPPrefix
@@ -79,6 +80,16 @@ It has these top-level messages:
TunnelEncapSubTLVEncapsulation
TunnelEncapSubTLVProtocol
TunnelEncapSubTLVColor
+ TunnelEncapSubTLVSRPreference
+ SRBindingSID
+ SRv6EndPpointBehavior
+ SRv6BindingSID
+ TunnelEncapSubTLVSRENLP
+ SRWeight
+ SegmentFlags
+ SegmentTypeA
+ SegmentList
+ TunnelEncapSubTLVSRPolicy
TunnelEncapSubTLVUnknown
TunnelEncapTLV
TunnelEncapAttribute
@@ -350,6 +361,132 @@ func (x LsProtocolID) String() string {
}
func (LsProtocolID) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+type SRv6Behavior int32
+
+const (
+ SRv6Behavior_RESERVED SRv6Behavior = 0
+ SRv6Behavior_END SRv6Behavior = 1
+ SRv6Behavior_END_WITH_PSP SRv6Behavior = 2
+ SRv6Behavior_END_WITH_USP SRv6Behavior = 3
+ SRv6Behavior_END_WITH_PSP_USP SRv6Behavior = 4
+ SRv6Behavior_ENDX SRv6Behavior = 5
+ SRv6Behavior_ENDX_WITH_PSP SRv6Behavior = 6
+ SRv6Behavior_ENDX_WITH_USP SRv6Behavior = 7
+ SRv6Behavior_ENDX_WITH_PSP_USP SRv6Behavior = 8
+ SRv6Behavior_ENDT SRv6Behavior = 9
+ SRv6Behavior_ENDT_WITH_PSP SRv6Behavior = 10
+ SRv6Behavior_ENDT_WITH_USP SRv6Behavior = 11
+ SRv6Behavior_ENDT_WITH_PSP_USP SRv6Behavior = 12
+ SRv6Behavior_END_B6_ENCAPS SRv6Behavior = 14
+ SRv6Behavior_END_BM SRv6Behavior = 15
+ SRv6Behavior_END_DX6 SRv6Behavior = 16
+ SRv6Behavior_END_DX4 SRv6Behavior = 17
+ SRv6Behavior_END_DT6 SRv6Behavior = 18
+ SRv6Behavior_END_DT4 SRv6Behavior = 19
+ SRv6Behavior_END_DT46 SRv6Behavior = 20
+ SRv6Behavior_END_DX2 SRv6Behavior = 21
+ SRv6Behavior_END_DX2V SRv6Behavior = 22
+ SRv6Behavior_END_DT2U SRv6Behavior = 23
+ SRv6Behavior_END_DT2M SRv6Behavior = 24
+ SRv6Behavior_END_B6_ENCAPS_Red SRv6Behavior = 27
+ SRv6Behavior_END_WITH_USD SRv6Behavior = 28
+ SRv6Behavior_END_WITH_PSP_USD SRv6Behavior = 29
+ SRv6Behavior_END_WITH_USP_USD SRv6Behavior = 30
+ SRv6Behavior_END_WITH_PSP_USP_USD SRv6Behavior = 31
+ SRv6Behavior_ENDX_WITH_USD SRv6Behavior = 32
+ SRv6Behavior_ENDX_WITH_PSP_USD SRv6Behavior = 33
+ SRv6Behavior_ENDX_WITH_USP_USD SRv6Behavior = 34
+ SRv6Behavior_ENDX_WITH_PSP_USP_USD SRv6Behavior = 35
+ SRv6Behavior_ENDT_WITH_USD SRv6Behavior = 36
+ SRv6Behavior_ENDT_WITH_PSP_USD SRv6Behavior = 37
+ SRv6Behavior_ENDT_WITH_USP_USD SRv6Behavior = 38
+ SRv6Behavior_ENDT_WITH_PSP_USP_USD SRv6Behavior = 39
+)
+
+var SRv6Behavior_name = map[int32]string{
+ 0: "RESERVED",
+ 1: "END",
+ 2: "END_WITH_PSP",
+ 3: "END_WITH_USP",
+ 4: "END_WITH_PSP_USP",
+ 5: "ENDX",
+ 6: "ENDX_WITH_PSP",
+ 7: "ENDX_WITH_USP",
+ 8: "ENDX_WITH_PSP_USP",
+ 9: "ENDT",
+ 10: "ENDT_WITH_PSP",
+ 11: "ENDT_WITH_USP",
+ 12: "ENDT_WITH_PSP_USP",
+ 14: "END_B6_ENCAPS",
+ 15: "END_BM",
+ 16: "END_DX6",
+ 17: "END_DX4",
+ 18: "END_DT6",
+ 19: "END_DT4",
+ 20: "END_DT46",
+ 21: "END_DX2",
+ 22: "END_DX2V",
+ 23: "END_DT2U",
+ 24: "END_DT2M",
+ 27: "END_B6_ENCAPS_Red",
+ 28: "END_WITH_USD",
+ 29: "END_WITH_PSP_USD",
+ 30: "END_WITH_USP_USD",
+ 31: "END_WITH_PSP_USP_USD",
+ 32: "ENDX_WITH_USD",
+ 33: "ENDX_WITH_PSP_USD",
+ 34: "ENDX_WITH_USP_USD",
+ 35: "ENDX_WITH_PSP_USP_USD",
+ 36: "ENDT_WITH_USD",
+ 37: "ENDT_WITH_PSP_USD",
+ 38: "ENDT_WITH_USP_USD",
+ 39: "ENDT_WITH_PSP_USP_USD",
+}
+var SRv6Behavior_value = map[string]int32{
+ "RESERVED": 0,
+ "END": 1,
+ "END_WITH_PSP": 2,
+ "END_WITH_USP": 3,
+ "END_WITH_PSP_USP": 4,
+ "ENDX": 5,
+ "ENDX_WITH_PSP": 6,
+ "ENDX_WITH_USP": 7,
+ "ENDX_WITH_PSP_USP": 8,
+ "ENDT": 9,
+ "ENDT_WITH_PSP": 10,
+ "ENDT_WITH_USP": 11,
+ "ENDT_WITH_PSP_USP": 12,
+ "END_B6_ENCAPS": 14,
+ "END_BM": 15,
+ "END_DX6": 16,
+ "END_DX4": 17,
+ "END_DT6": 18,
+ "END_DT4": 19,
+ "END_DT46": 20,
+ "END_DX2": 21,
+ "END_DX2V": 22,
+ "END_DT2U": 23,
+ "END_DT2M": 24,
+ "END_B6_ENCAPS_Red": 27,
+ "END_WITH_USD": 28,
+ "END_WITH_PSP_USD": 29,
+ "END_WITH_USP_USD": 30,
+ "END_WITH_PSP_USP_USD": 31,
+ "ENDX_WITH_USD": 32,
+ "ENDX_WITH_PSP_USD": 33,
+ "ENDX_WITH_USP_USD": 34,
+ "ENDX_WITH_PSP_USP_USD": 35,
+ "ENDT_WITH_USD": 36,
+ "ENDT_WITH_PSP_USD": 37,
+ "ENDT_WITH_USP_USD": 38,
+ "ENDT_WITH_PSP_USP_USD": 39,
+}
+
+func (x SRv6Behavior) String() string {
+ return proto.EnumName(SRv6Behavior_name, int32(x))
+}
+func (SRv6Behavior) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
+
type OriginAttribute struct {
Origin uint32 `protobuf:"varint,1,opt,name=origin" json:"origin,omitempty"`
}
@@ -1009,6 +1146,59 @@ func (m *EVPNIPMSIRoute) GetRt() *google_protobuf.Any {
return nil
}
+// SRPolicyNLRI represents the NLRI for:
+// - AFI=1, SAFI=73
+// - AFI=2, SAFI=73
+type SRPolicyNLRI struct {
+ // length field carries the length of NLRI portion expressed in bits
+ Length uint32 `protobuf:"varint,1,opt,name=length" json:"length,omitempty"`
+ // distinguisher field carries 4-octet value uniquely identifying the policy
+ // in the context of <color, endpoint> tuple.
+ Distinguisher uint32 `protobuf:"varint,2,opt,name=distinguisher" json:"distinguisher,omitempty"`
+ // color field carries 4-octet value identifying (with the endpoint) the
+ // policy. The color is used to match the color of the destination
+ // prefixes to steer traffic into the SR Policy
+ Color uint32 `protobuf:"varint,3,opt,name=color" json:"color,omitempty"`
+ // endpoint field identifies the endpoint of a policy. The Endpoint may
+ // represent a single node or a set of nodes (e.g., an anycast
+ // address). The Endpoint is an IPv4 (4-octet) address or an IPv6
+ // (16-octet) address according to the AFI of the NLRI.
+ Endpoint []byte `protobuf:"bytes,4,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
+}
+
+func (m *SRPolicyNLRI) Reset() { *m = SRPolicyNLRI{} }
+func (m *SRPolicyNLRI) String() string { return proto.CompactTextString(m) }
+func (*SRPolicyNLRI) ProtoMessage() {}
+func (*SRPolicyNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
+
+func (m *SRPolicyNLRI) GetLength() uint32 {
+ if m != nil {
+ return m.Length
+ }
+ return 0
+}
+
+func (m *SRPolicyNLRI) GetDistinguisher() uint32 {
+ if m != nil {
+ return m.Distinguisher
+ }
+ return 0
+}
+
+func (m *SRPolicyNLRI) GetColor() uint32 {
+ if m != nil {
+ return m.Color
+ }
+ return 0
+}
+
+func (m *SRPolicyNLRI) GetEndpoint() []byte {
+ if m != nil {
+ return m.Endpoint
+ }
+ return nil
+}
+
// LabeledVPNIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=128
// - AFI=2, SAFI=128
@@ -1026,7 +1216,7 @@ type LabeledVPNIPAddressPrefix struct {
func (m *LabeledVPNIPAddressPrefix) Reset() { *m = LabeledVPNIPAddressPrefix{} }
func (m *LabeledVPNIPAddressPrefix) String() string { return proto.CompactTextString(m) }
func (*LabeledVPNIPAddressPrefix) ProtoMessage() {}
-func (*LabeledVPNIPAddressPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
+func (*LabeledVPNIPAddressPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (m *LabeledVPNIPAddressPrefix) GetLabels() []uint32 {
if m != nil {
@@ -1070,7 +1260,7 @@ type RouteTargetMembershipNLRI struct {
func (m *RouteTargetMembershipNLRI) Reset() { *m = RouteTargetMembershipNLRI{} }
func (m *RouteTargetMembershipNLRI) String() string { return proto.CompactTextString(m) }
func (*RouteTargetMembershipNLRI) ProtoMessage() {}
-func (*RouteTargetMembershipNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
+func (*RouteTargetMembershipNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
func (m *RouteTargetMembershipNLRI) GetAs() uint32 {
if m != nil {
@@ -1097,7 +1287,7 @@ type FlowSpecIPPrefix struct {
func (m *FlowSpecIPPrefix) Reset() { *m = FlowSpecIPPrefix{} }
func (m *FlowSpecIPPrefix) String() string { return proto.CompactTextString(m) }
func (*FlowSpecIPPrefix) ProtoMessage() {}
-func (*FlowSpecIPPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
+func (*FlowSpecIPPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
func (m *FlowSpecIPPrefix) GetType() uint32 {
if m != nil {
@@ -1135,7 +1325,7 @@ type FlowSpecMAC struct {
func (m *FlowSpecMAC) Reset() { *m = FlowSpecMAC{} }
func (m *FlowSpecMAC) String() string { return proto.CompactTextString(m) }
func (*FlowSpecMAC) ProtoMessage() {}
-func (*FlowSpecMAC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
+func (*FlowSpecMAC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
func (m *FlowSpecMAC) GetType() uint32 {
if m != nil {
@@ -1160,7 +1350,7 @@ type FlowSpecComponentItem struct {
func (m *FlowSpecComponentItem) Reset() { *m = FlowSpecComponentItem{} }
func (m *FlowSpecComponentItem) String() string { return proto.CompactTextString(m) }
func (*FlowSpecComponentItem) ProtoMessage() {}
-func (*FlowSpecComponentItem) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
+func (*FlowSpecComponentItem) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
func (m *FlowSpecComponentItem) GetOp() uint32 {
if m != nil {
@@ -1184,7 +1374,7 @@ type FlowSpecComponent struct {
func (m *FlowSpecComponent) Reset() { *m = FlowSpecComponent{} }
func (m *FlowSpecComponent) String() string { return proto.CompactTextString(m) }
func (*FlowSpecComponent) ProtoMessage() {}
-func (*FlowSpecComponent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
+func (*FlowSpecComponent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
func (m *FlowSpecComponent) GetType() uint32 {
if m != nil {
@@ -1214,7 +1404,7 @@ type FlowSpecNLRI struct {
func (m *FlowSpecNLRI) Reset() { *m = FlowSpecNLRI{} }
func (m *FlowSpecNLRI) String() string { return proto.CompactTextString(m) }
func (*FlowSpecNLRI) ProtoMessage() {}
-func (*FlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
+func (*FlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
func (m *FlowSpecNLRI) GetRules() []*google_protobuf.Any {
if m != nil {
@@ -1243,7 +1433,7 @@ type VPNFlowSpecNLRI struct {
func (m *VPNFlowSpecNLRI) Reset() { *m = VPNFlowSpecNLRI{} }
func (m *VPNFlowSpecNLRI) String() string { return proto.CompactTextString(m) }
func (*VPNFlowSpecNLRI) ProtoMessage() {}
-func (*VPNFlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
+func (*VPNFlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
func (m *VPNFlowSpecNLRI) GetRd() *google_protobuf.Any {
if m != nil {
@@ -1269,7 +1459,7 @@ type OpaqueNLRI struct {
func (m *OpaqueNLRI) Reset() { *m = OpaqueNLRI{} }
func (m *OpaqueNLRI) String() string { return proto.CompactTextString(m) }
func (*OpaqueNLRI) ProtoMessage() {}
-func (*OpaqueNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
+func (*OpaqueNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }
func (m *OpaqueNLRI) GetKey() []byte {
if m != nil {
@@ -1296,7 +1486,7 @@ type LsNodeDescriptor struct {
func (m *LsNodeDescriptor) Reset() { *m = LsNodeDescriptor{} }
func (m *LsNodeDescriptor) String() string { return proto.CompactTextString(m) }
func (*LsNodeDescriptor) ProtoMessage() {}
-func (*LsNodeDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }
+func (*LsNodeDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }
func (m *LsNodeDescriptor) GetAsn() uint32 {
if m != nil {
@@ -1345,7 +1535,7 @@ type LsLinkDescriptor struct {
func (m *LsLinkDescriptor) Reset() { *m = LsLinkDescriptor{} }
func (m *LsLinkDescriptor) String() string { return proto.CompactTextString(m) }
func (*LsLinkDescriptor) ProtoMessage() {}
-func (*LsLinkDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }
+func (*LsLinkDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }
func (m *LsLinkDescriptor) GetLinkLocalId() uint32 {
if m != nil {
@@ -1397,7 +1587,7 @@ type LsPrefixDescriptor struct {
func (m *LsPrefixDescriptor) Reset() { *m = LsPrefixDescriptor{} }
func (m *LsPrefixDescriptor) String() string { return proto.CompactTextString(m) }
func (*LsPrefixDescriptor) ProtoMessage() {}
-func (*LsPrefixDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }
+func (*LsPrefixDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
func (m *LsPrefixDescriptor) GetIpReachability() []string {
if m != nil {
@@ -1420,7 +1610,7 @@ type LsNodeNLRI struct {
func (m *LsNodeNLRI) Reset() { *m = LsNodeNLRI{} }
func (m *LsNodeNLRI) String() string { return proto.CompactTextString(m) }
func (*LsNodeNLRI) ProtoMessage() {}
-func (*LsNodeNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
+func (*LsNodeNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
func (m *LsNodeNLRI) GetLocalNode() *LsNodeDescriptor {
if m != nil {
@@ -1438,7 +1628,7 @@ type LsLinkNLRI struct {
func (m *LsLinkNLRI) Reset() { *m = LsLinkNLRI{} }
func (m *LsLinkNLRI) String() string { return proto.CompactTextString(m) }
func (*LsLinkNLRI) ProtoMessage() {}
-func (*LsLinkNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
+func (*LsLinkNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
func (m *LsLinkNLRI) GetLocalNode() *LsNodeDescriptor {
if m != nil {
@@ -1469,7 +1659,7 @@ type LsPrefixV4NLRI struct {
func (m *LsPrefixV4NLRI) Reset() { *m = LsPrefixV4NLRI{} }
func (m *LsPrefixV4NLRI) String() string { return proto.CompactTextString(m) }
func (*LsPrefixV4NLRI) ProtoMessage() {}
-func (*LsPrefixV4NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
+func (*LsPrefixV4NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
func (m *LsPrefixV4NLRI) GetLocalNode() *LsNodeDescriptor {
if m != nil {
@@ -1493,7 +1683,7 @@ type LsPrefixV6NLRI struct {
func (m *LsPrefixV6NLRI) Reset() { *m = LsPrefixV6NLRI{} }
func (m *LsPrefixV6NLRI) String() string { return proto.CompactTextString(m) }
func (*LsPrefixV6NLRI) ProtoMessage() {}
-func (*LsPrefixV6NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
+func (*LsPrefixV6NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
func (m *LsPrefixV6NLRI) GetLocalNode() *LsNodeDescriptor {
if m != nil {
@@ -1527,7 +1717,7 @@ type LsAddrPrefix struct {
func (m *LsAddrPrefix) Reset() { *m = LsAddrPrefix{} }
func (m *LsAddrPrefix) String() string { return proto.CompactTextString(m) }
func (*LsAddrPrefix) ProtoMessage() {}
-func (*LsAddrPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
+func (*LsAddrPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
func (m *LsAddrPrefix) GetType() LsNLRIType {
if m != nil {
@@ -1583,13 +1773,14 @@ type MpReachNLRIAttribute struct {
// - VPNFlowSpecNLRI
// - OpaqueNLRI
// - LsAddrPrefix
+ // - SR Policy NLRI
Nlris []*google_protobuf.Any `protobuf:"bytes,3,rep,name=nlris" json:"nlris,omitempty"`
}
func (m *MpReachNLRIAttribute) Reset() { *m = MpReachNLRIAttribute{} }
func (m *MpReachNLRIAttribute) String() string { return proto.CompactTextString(m) }
func (*MpReachNLRIAttribute) ProtoMessage() {}
-func (*MpReachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
+func (*MpReachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
func (m *MpReachNLRIAttribute) GetFamily() *Family {
if m != nil {
@@ -1621,7 +1812,7 @@ type MpUnreachNLRIAttribute struct {
func (m *MpUnreachNLRIAttribute) Reset() { *m = MpUnreachNLRIAttribute{} }
func (m *MpUnreachNLRIAttribute) String() string { return proto.CompactTextString(m) }
func (*MpUnreachNLRIAttribute) ProtoMessage() {}
-func (*MpUnreachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
+func (*MpUnreachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
func (m *MpUnreachNLRIAttribute) GetFamily() *Family {
if m != nil {
@@ -1647,7 +1838,7 @@ type TwoOctetAsSpecificExtended struct {
func (m *TwoOctetAsSpecificExtended) Reset() { *m = TwoOctetAsSpecificExtended{} }
func (m *TwoOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*TwoOctetAsSpecificExtended) ProtoMessage() {}
-func (*TwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
+func (*TwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
func (m *TwoOctetAsSpecificExtended) GetIsTransitive() bool {
if m != nil {
@@ -1687,7 +1878,7 @@ type IPv4AddressSpecificExtended struct {
func (m *IPv4AddressSpecificExtended) Reset() { *m = IPv4AddressSpecificExtended{} }
func (m *IPv4AddressSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*IPv4AddressSpecificExtended) ProtoMessage() {}
-func (*IPv4AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
+func (*IPv4AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
func (m *IPv4AddressSpecificExtended) GetIsTransitive() bool {
if m != nil {
@@ -1727,7 +1918,7 @@ type FourOctetAsSpecificExtended struct {
func (m *FourOctetAsSpecificExtended) Reset() { *m = FourOctetAsSpecificExtended{} }
func (m *FourOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*FourOctetAsSpecificExtended) ProtoMessage() {}
-func (*FourOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
+func (*FourOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
func (m *FourOctetAsSpecificExtended) GetIsTransitive() bool {
if m != nil {
@@ -1764,7 +1955,7 @@ type ValidationExtended struct {
func (m *ValidationExtended) Reset() { *m = ValidationExtended{} }
func (m *ValidationExtended) String() string { return proto.CompactTextString(m) }
func (*ValidationExtended) ProtoMessage() {}
-func (*ValidationExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
+func (*ValidationExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
func (m *ValidationExtended) GetState() uint32 {
if m != nil {
@@ -1780,7 +1971,7 @@ type ColorExtended struct {
func (m *ColorExtended) Reset() { *m = ColorExtended{} }
func (m *ColorExtended) String() string { return proto.CompactTextString(m) }
func (*ColorExtended) ProtoMessage() {}
-func (*ColorExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
+func (*ColorExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
func (m *ColorExtended) GetColor() uint32 {
if m != nil {
@@ -1796,7 +1987,7 @@ type EncapExtended struct {
func (m *EncapExtended) Reset() { *m = EncapExtended{} }
func (m *EncapExtended) String() string { return proto.CompactTextString(m) }
func (*EncapExtended) ProtoMessage() {}
-func (*EncapExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
+func (*EncapExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
func (m *EncapExtended) GetTunnelType() uint32 {
if m != nil {
@@ -1811,7 +2002,7 @@ type DefaultGatewayExtended struct {
func (m *DefaultGatewayExtended) Reset() { *m = DefaultGatewayExtended{} }
func (m *DefaultGatewayExtended) String() string { return proto.CompactTextString(m) }
func (*DefaultGatewayExtended) ProtoMessage() {}
-func (*DefaultGatewayExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
+func (*DefaultGatewayExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
type OpaqueExtended struct {
IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
@@ -1821,7 +2012,7 @@ type OpaqueExtended struct {
func (m *OpaqueExtended) Reset() { *m = OpaqueExtended{} }
func (m *OpaqueExtended) String() string { return proto.CompactTextString(m) }
func (*OpaqueExtended) ProtoMessage() {}
-func (*OpaqueExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
+func (*OpaqueExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
func (m *OpaqueExtended) GetIsTransitive() bool {
if m != nil {
@@ -1845,7 +2036,7 @@ type ESILabelExtended struct {
func (m *ESILabelExtended) Reset() { *m = ESILabelExtended{} }
func (m *ESILabelExtended) String() string { return proto.CompactTextString(m) }
func (*ESILabelExtended) ProtoMessage() {}
-func (*ESILabelExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
+func (*ESILabelExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }
func (m *ESILabelExtended) GetIsSingleActive() bool {
if m != nil {
@@ -1868,7 +2059,7 @@ type ESImportRouteTarget struct {
func (m *ESImportRouteTarget) Reset() { *m = ESImportRouteTarget{} }
func (m *ESImportRouteTarget) String() string { return proto.CompactTextString(m) }
func (*ESImportRouteTarget) ProtoMessage() {}
-func (*ESImportRouteTarget) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }
+func (*ESImportRouteTarget) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }
func (m *ESImportRouteTarget) GetEsImport() string {
if m != nil {
@@ -1885,7 +2076,7 @@ type MacMobilityExtended struct {
func (m *MacMobilityExtended) Reset() { *m = MacMobilityExtended{} }
func (m *MacMobilityExtended) String() string { return proto.CompactTextString(m) }
func (*MacMobilityExtended) ProtoMessage() {}
-func (*MacMobilityExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }
+func (*MacMobilityExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }
func (m *MacMobilityExtended) GetIsSticky() bool {
if m != nil {
@@ -1908,7 +2099,7 @@ type RouterMacExtended struct {
func (m *RouterMacExtended) Reset() { *m = RouterMacExtended{} }
func (m *RouterMacExtended) String() string { return proto.CompactTextString(m) }
func (*RouterMacExtended) ProtoMessage() {}
-func (*RouterMacExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }
+func (*RouterMacExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }
func (m *RouterMacExtended) GetMac() string {
if m != nil {
@@ -1925,7 +2116,7 @@ type TrafficRateExtended struct {
func (m *TrafficRateExtended) Reset() { *m = TrafficRateExtended{} }
func (m *TrafficRateExtended) String() string { return proto.CompactTextString(m) }
func (*TrafficRateExtended) ProtoMessage() {}
-func (*TrafficRateExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }
+func (*TrafficRateExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }
func (m *TrafficRateExtended) GetAs() uint32 {
if m != nil {
@@ -1949,7 +2140,7 @@ type TrafficActionExtended struct {
func (m *TrafficActionExtended) Reset() { *m = TrafficActionExtended{} }
func (m *TrafficActionExtended) String() string { return proto.CompactTextString(m) }
func (*TrafficActionExtended) ProtoMessage() {}
-func (*TrafficActionExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }
+func (*TrafficActionExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }
func (m *TrafficActionExtended) GetTerminal() bool {
if m != nil {
@@ -1974,7 +2165,7 @@ func (m *RedirectTwoOctetAsSpecificExtended) Reset() { *m = RedirectTwoO
func (m *RedirectTwoOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*RedirectTwoOctetAsSpecificExtended) ProtoMessage() {}
func (*RedirectTwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) {
- return fileDescriptor0, []int{57}
+ return fileDescriptor0, []int{58}
}
func (m *RedirectTwoOctetAsSpecificExtended) GetAs() uint32 {
@@ -2000,7 +2191,7 @@ func (m *RedirectIPv4AddressSpecificExtended) Reset() { *m = RedirectIPv
func (m *RedirectIPv4AddressSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*RedirectIPv4AddressSpecificExtended) ProtoMessage() {}
func (*RedirectIPv4AddressSpecificExtended) Descriptor() ([]byte, []int) {
- return fileDescriptor0, []int{58}
+ return fileDescriptor0, []int{59}
}
func (m *RedirectIPv4AddressSpecificExtended) GetAddress() string {
@@ -2026,7 +2217,7 @@ func (m *RedirectFourOctetAsSpecificExtended) Reset() { *m = RedirectFou
func (m *RedirectFourOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*RedirectFourOctetAsSpecificExtended) ProtoMessage() {}
func (*RedirectFourOctetAsSpecificExtended) Descriptor() ([]byte, []int) {
- return fileDescriptor0, []int{59}
+ return fileDescriptor0, []int{60}
}
func (m *RedirectFourOctetAsSpecificExtended) GetAs() uint32 {
@@ -2050,7 +2241,7 @@ type TrafficRemarkExtended struct {
func (m *TrafficRemarkExtended) Reset() { *m = TrafficRemarkExtended{} }
func (m *TrafficRemarkExtended) String() string { return proto.CompactTextString(m) }
func (*TrafficRemarkExtended) ProtoMessage() {}
-func (*TrafficRemarkExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} }
+func (*TrafficRemarkExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} }
func (m *TrafficRemarkExtended) GetDscp() uint32 {
if m != nil {
@@ -2067,7 +2258,7 @@ type UnknownExtended struct {
func (m *UnknownExtended) Reset() { *m = UnknownExtended{} }
func (m *UnknownExtended) String() string { return proto.CompactTextString(m) }
func (*UnknownExtended) ProtoMessage() {}
-func (*UnknownExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} }
+func (*UnknownExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }
func (m *UnknownExtended) GetType() uint32 {
if m != nil {
@@ -2105,7 +2296,7 @@ type ExtendedCommunitiesAttribute struct {
func (m *ExtendedCommunitiesAttribute) Reset() { *m = ExtendedCommunitiesAttribute{} }
func (m *ExtendedCommunitiesAttribute) String() string { return proto.CompactTextString(m) }
func (*ExtendedCommunitiesAttribute) ProtoMessage() {}
-func (*ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }
+func (*ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} }
func (m *ExtendedCommunitiesAttribute) GetCommunities() []*google_protobuf.Any {
if m != nil {
@@ -2121,7 +2312,7 @@ type As4PathAttribute struct {
func (m *As4PathAttribute) Reset() { *m = As4PathAttribute{} }
func (m *As4PathAttribute) String() string { return proto.CompactTextString(m) }
func (*As4PathAttribute) ProtoMessage() {}
-func (*As4PathAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} }
+func (*As4PathAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }
func (m *As4PathAttribute) GetSegments() []*AsSegment {
if m != nil {
@@ -2138,7 +2329,7 @@ type As4AggregatorAttribute struct {
func (m *As4AggregatorAttribute) Reset() { *m = As4AggregatorAttribute{} }
func (m *As4AggregatorAttribute) String() string { return proto.CompactTextString(m) }
func (*As4AggregatorAttribute) ProtoMessage() {}
-func (*As4AggregatorAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }
+func (*As4AggregatorAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }
func (m *As4AggregatorAttribute) GetAs() uint32 {
if m != nil {
@@ -2164,7 +2355,7 @@ type PmsiTunnelAttribute struct {
func (m *PmsiTunnelAttribute) Reset() { *m = PmsiTunnelAttribute{} }
func (m *PmsiTunnelAttribute) String() string { return proto.CompactTextString(m) }
func (*PmsiTunnelAttribute) ProtoMessage() {}
-func (*PmsiTunnelAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }
+func (*PmsiTunnelAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} }
func (m *PmsiTunnelAttribute) GetFlags() uint32 {
if m != nil {
@@ -2203,7 +2394,7 @@ func (m *TunnelEncapSubTLVEncapsulation) Reset() { *m = TunnelEncapSubTL
func (m *TunnelEncapSubTLVEncapsulation) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVEncapsulation) ProtoMessage() {}
func (*TunnelEncapSubTLVEncapsulation) Descriptor() ([]byte, []int) {
- return fileDescriptor0, []int{66}
+ return fileDescriptor0, []int{67}
}
func (m *TunnelEncapSubTLVEncapsulation) GetKey() uint32 {
@@ -2227,7 +2418,7 @@ type TunnelEncapSubTLVProtocol struct {
func (m *TunnelEncapSubTLVProtocol) Reset() { *m = TunnelEncapSubTLVProtocol{} }
func (m *TunnelEncapSubTLVProtocol) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVProtocol) ProtoMessage() {}
-func (*TunnelEncapSubTLVProtocol) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} }
+func (*TunnelEncapSubTLVProtocol) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
func (m *TunnelEncapSubTLVProtocol) GetProtocol() uint32 {
if m != nil {
@@ -2243,7 +2434,7 @@ type TunnelEncapSubTLVColor struct {
func (m *TunnelEncapSubTLVColor) Reset() { *m = TunnelEncapSubTLVColor{} }
func (m *TunnelEncapSubTLVColor) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVColor) ProtoMessage() {}
-func (*TunnelEncapSubTLVColor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
+func (*TunnelEncapSubTLVColor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
func (m *TunnelEncapSubTLVColor) GetColor() uint32 {
if m != nil {
@@ -2252,6 +2443,355 @@ func (m *TunnelEncapSubTLVColor) GetColor() uint32 {
return 0
}
+type TunnelEncapSubTLVSRPreference struct {
+ Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
+ Preference uint32 `protobuf:"varint,2,opt,name=preference" json:"preference,omitempty"`
+}
+
+func (m *TunnelEncapSubTLVSRPreference) Reset() { *m = TunnelEncapSubTLVSRPreference{} }
+func (m *TunnelEncapSubTLVSRPreference) String() string { return proto.CompactTextString(m) }
+func (*TunnelEncapSubTLVSRPreference) ProtoMessage() {}
+func (*TunnelEncapSubTLVSRPreference) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
+
+func (m *TunnelEncapSubTLVSRPreference) GetFlags() uint32 {
+ if m != nil {
+ return m.Flags
+ }
+ return 0
+}
+
+func (m *TunnelEncapSubTLVSRPreference) GetPreference() uint32 {
+ if m != nil {
+ return m.Preference
+ }
+ return 0
+}
+
+type SRBindingSID struct {
+ Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
+ Sid []byte `protobuf:"bytes,2,opt,name=sid,proto3" json:"sid,omitempty"`
+}
+
+func (m *SRBindingSID) Reset() { *m = SRBindingSID{} }
+func (m *SRBindingSID) String() string { return proto.CompactTextString(m) }
+func (*SRBindingSID) ProtoMessage() {}
+func (*SRBindingSID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }
+
+func (m *SRBindingSID) GetFlags() uint32 {
+ if m != nil {
+ return m.Flags
+ }
+ return 0
+}
+
+func (m *SRBindingSID) GetSid() []byte {
+ if m != nil {
+ return m.Sid
+ }
+ return nil
+}
+
+type SRv6EndPpointBehavior struct {
+ Behavior SRv6Behavior `protobuf:"varint,1,opt,name=behavior,enum=gobgpapi.SRv6Behavior" json:"behavior,omitempty"`
+ BlockLen uint32 `protobuf:"varint,2,opt,name=block_len,json=blockLen" json:"block_len,omitempty"`
+ NodeLen uint32 `protobuf:"varint,3,opt,name=node_len,json=nodeLen" json:"node_len,omitempty"`
+ FuncLen uint32 `protobuf:"varint,4,opt,name=func_len,json=funcLen" json:"func_len,omitempty"`
+ ArgLen uint32 `protobuf:"varint,5,opt,name=arg_len,json=argLen" json:"arg_len,omitempty"`
+}
+
+func (m *SRv6EndPpointBehavior) Reset() { *m = SRv6EndPpointBehavior{} }
+func (m *SRv6EndPpointBehavior) String() string { return proto.CompactTextString(m) }
+func (*SRv6EndPpointBehavior) ProtoMessage() {}
+func (*SRv6EndPpointBehavior) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
+
+func (m *SRv6EndPpointBehavior) GetBehavior() SRv6Behavior {
+ if m != nil {
+ return m.Behavior
+ }
+ return SRv6Behavior_RESERVED
+}
+
+func (m *SRv6EndPpointBehavior) GetBlockLen() uint32 {
+ if m != nil {
+ return m.BlockLen
+ }
+ return 0
+}
+
+func (m *SRv6EndPpointBehavior) GetNodeLen() uint32 {
+ if m != nil {
+ return m.NodeLen
+ }
+ return 0
+}
+
+func (m *SRv6EndPpointBehavior) GetFuncLen() uint32 {
+ if m != nil {
+ return m.FuncLen
+ }
+ return 0
+}
+
+func (m *SRv6EndPpointBehavior) GetArgLen() uint32 {
+ if m != nil {
+ return m.ArgLen
+ }
+ return 0
+}
+
+type SRv6BindingSID struct {
+ SFlag bool `protobuf:"varint,1,opt,name=s_flag,json=sFlag" json:"s_flag,omitempty"`
+ IFlag bool `protobuf:"varint,2,opt,name=i_flag,json=iFlag" json:"i_flag,omitempty"`
+ BFlag bool `protobuf:"varint,3,opt,name=b_flag,json=bFlag" json:"b_flag,omitempty"`
+ Sid []byte `protobuf:"bytes,4,opt,name=sid,proto3" json:"sid,omitempty"`
+ EndpointBehaviorStructure *SRv6EndPpointBehavior `protobuf:"bytes,5,opt,name=endpoint_behavior_structure,json=endpointBehaviorStructure" json:"endpoint_behavior_structure,omitempty"`
+}
+
+func (m *SRv6BindingSID) Reset() { *m = SRv6BindingSID{} }
+func (m *SRv6BindingSID) String() string { return proto.CompactTextString(m) }
+func (*SRv6BindingSID) ProtoMessage() {}
+func (*SRv6BindingSID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} }
+
+func (m *SRv6BindingSID) GetSFlag() bool {
+ if m != nil {
+ return m.SFlag
+ }
+ return false
+}
+
+func (m *SRv6BindingSID) GetIFlag() bool {
+ if m != nil {
+ return m.IFlag
+ }
+ return false
+}
+
+func (m *SRv6BindingSID) GetBFlag() bool {
+ if m != nil {
+ return m.BFlag
+ }
+ return false
+}
+
+func (m *SRv6BindingSID) GetSid() []byte {
+ if m != nil {
+ return m.Sid
+ }
+ return nil
+}
+
+func (m *SRv6BindingSID) GetEndpointBehaviorStructure() *SRv6EndPpointBehavior {
+ if m != nil {
+ return m.EndpointBehaviorStructure
+ }
+ return nil
+}
+
+type TunnelEncapSubTLVSRENLP struct {
+ Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
+ Enlp uint32 `protobuf:"varint,2,opt,name=enlp" json:"enlp,omitempty"`
+}
+
+func (m *TunnelEncapSubTLVSRENLP) Reset() { *m = TunnelEncapSubTLVSRENLP{} }
+func (m *TunnelEncapSubTLVSRENLP) String() string { return proto.CompactTextString(m) }
+func (*TunnelEncapSubTLVSRENLP) ProtoMessage() {}
+func (*TunnelEncapSubTLVSRENLP) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} }
+
+func (m *TunnelEncapSubTLVSRENLP) GetFlags() uint32 {
+ if m != nil {
+ return m.Flags
+ }
+ return 0
+}
+
+func (m *TunnelEncapSubTLVSRENLP) GetEnlp() uint32 {
+ if m != nil {
+ return m.Enlp
+ }
+ return 0
+}
+
+type SRWeight struct {
+ Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
+ Weigth uint32 `protobuf:"varint,2,opt,name=weigth" json:"weigth,omitempty"`
+}
+
+func (m *SRWeight) Reset() { *m = SRWeight{} }
+func (m *SRWeight) String() string { return proto.CompactTextString(m) }
+func (*SRWeight) ProtoMessage() {}
+func (*SRWeight) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }
+
+func (m *SRWeight) GetFlags() uint32 {
+ if m != nil {
+ return m.Flags
+ }
+ return 0
+}
+
+func (m *SRWeight) GetWeigth() uint32 {
+ if m != nil {
+ return m.Weigth
+ }
+ return 0
+}
+
+type SegmentFlags struct {
+ VFlag bool `protobuf:"varint,1,opt,name=v_flag,json=vFlag" json:"v_flag,omitempty"`
+ AFlag bool `protobuf:"varint,2,opt,name=a_flag,json=aFlag" json:"a_flag,omitempty"`
+ SFlag bool `protobuf:"varint,3,opt,name=s_flag,json=sFlag" json:"s_flag,omitempty"`
+ BFlag bool `protobuf:"varint,4,opt,name=b_flag,json=bFlag" json:"b_flag,omitempty"`
+}
+
+func (m *SegmentFlags) Reset() { *m = SegmentFlags{} }
+func (m *SegmentFlags) String() string { return proto.CompactTextString(m) }
+func (*SegmentFlags) ProtoMessage() {}
+func (*SegmentFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }
+
+func (m *SegmentFlags) GetVFlag() bool {
+ if m != nil {
+ return m.VFlag
+ }
+ return false
+}
+
+func (m *SegmentFlags) GetAFlag() bool {
+ if m != nil {
+ return m.AFlag
+ }
+ return false
+}
+
+func (m *SegmentFlags) GetSFlag() bool {
+ if m != nil {
+ return m.SFlag
+ }
+ return false
+}
+
+func (m *SegmentFlags) GetBFlag() bool {
+ if m != nil {
+ return m.BFlag
+ }
+ return false
+}
+
+type SegmentTypeA struct {
+ Flags *SegmentFlags `protobuf:"bytes,1,opt,name=flags" json:"flags,omitempty"`
+ Label uint32 `protobuf:"varint,2,opt,name=label" json:"label,omitempty"`
+}
+
+func (m *SegmentTypeA) Reset() { *m = SegmentTypeA{} }
+func (m *SegmentTypeA) String() string { return proto.CompactTextString(m) }
+func (*SegmentTypeA) ProtoMessage() {}
+func (*SegmentTypeA) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }
+
+func (m *SegmentTypeA) GetFlags() *SegmentFlags {
+ if m != nil {
+ return m.Flags
+ }
+ return nil
+}
+
+func (m *SegmentTypeA) GetLabel() uint32 {
+ if m != nil {
+ return m.Label
+ }
+ return 0
+}
+
+type SegmentList struct {
+ Weight *SRWeight `protobuf:"bytes,1,opt,name=weight" json:"weight,omitempty"`
+ // segments must be one of:
+ // - SegmentTypeA
+ Segments []*google_protobuf.Any `protobuf:"bytes,2,rep,name=segments" json:"segments,omitempty"`
+}
+
+func (m *SegmentList) Reset() { *m = SegmentList{} }
+func (m *SegmentList) String() string { return proto.CompactTextString(m) }
+func (*SegmentList) ProtoMessage() {}
+func (*SegmentList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} }
+
+func (m *SegmentList) GetWeight() *SRWeight {
+ if m != nil {
+ return m.Weight
+ }
+ return nil
+}
+
+func (m *SegmentList) GetSegments() []*google_protobuf.Any {
+ if m != nil {
+ return m.Segments
+ }
+ return nil
+}
+
+type TunnelEncapSubTLVSRPolicy struct {
+ Preference *TunnelEncapSubTLVSRPreference `protobuf:"bytes,1,opt,name=preference" json:"preference,omitempty"`
+ // bsid must be one of:
+ // - SRBindingSID
+ // - SRv6BindingSID
+ Bsid *google_protobuf.Any `protobuf:"bytes,2,opt,name=bsid" json:"bsid,omitempty"`
+ Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+ CandidatePathName string `protobuf:"bytes,4,opt,name=candidate_path_name,json=candidatePathName" json:"candidate_path_name,omitempty"`
+ Priority uint32 `protobuf:"varint,5,opt,name=priority" json:"priority,omitempty"`
+ Enlp *TunnelEncapSubTLVSRENLP `protobuf:"bytes,6,opt,name=enlp" json:"enlp,omitempty"`
+ SegmentList []*SegmentList `protobuf:"bytes,7,rep,name=segment_list,json=segmentList" json:"segment_list,omitempty"`
+}
+
+func (m *TunnelEncapSubTLVSRPolicy) Reset() { *m = TunnelEncapSubTLVSRPolicy{} }
+func (m *TunnelEncapSubTLVSRPolicy) String() string { return proto.CompactTextString(m) }
+func (*TunnelEncapSubTLVSRPolicy) ProtoMessage() {}
+func (*TunnelEncapSubTLVSRPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} }
+
+func (m *TunnelEncapSubTLVSRPolicy) GetPreference() *TunnelEncapSubTLVSRPreference {
+ if m != nil {
+ return m.Preference
+ }
+ return nil
+}
+
+func (m *TunnelEncapSubTLVSRPolicy) GetBsid() *google_protobuf.Any {
+ if m != nil {
+ return m.Bsid
+ }
+ return nil
+}
+
+func (m *TunnelEncapSubTLVSRPolicy) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *TunnelEncapSubTLVSRPolicy) GetCandidatePathName() string {
+ if m != nil {
+ return m.CandidatePathName
+ }
+ return ""
+}
+
+func (m *TunnelEncapSubTLVSRPolicy) GetPriority() uint32 {
+ if m != nil {
+ return m.Priority
+ }
+ return 0
+}
+
+func (m *TunnelEncapSubTLVSRPolicy) GetEnlp() *TunnelEncapSubTLVSRENLP {
+ if m != nil {
+ return m.Enlp
+ }
+ return nil
+}
+
+func (m *TunnelEncapSubTLVSRPolicy) GetSegmentList() []*SegmentList {
+ if m != nil {
+ return m.SegmentList
+ }
+ return nil
+}
+
type TunnelEncapSubTLVUnknown struct {
Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
@@ -2260,7 +2800,7 @@ type TunnelEncapSubTLVUnknown struct {
func (m *TunnelEncapSubTLVUnknown) Reset() { *m = TunnelEncapSubTLVUnknown{} }
func (m *TunnelEncapSubTLVUnknown) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapSubTLVUnknown) ProtoMessage() {}
-func (*TunnelEncapSubTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
+func (*TunnelEncapSubTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} }
func (m *TunnelEncapSubTLVUnknown) GetType() uint32 {
if m != nil {
@@ -2282,6 +2822,7 @@ type TunnelEncapTLV struct {
// - TunnelEncapSubTLVEncapsulation
// - TunnelEncapSubTLVProtocol
// - TunnelEncapSubTLVColor
+ // - TunnelEncapSubTLVSRPolicy
// - TunnelEncapSubTLVUnknown
Tlvs []*google_protobuf.Any `protobuf:"bytes,2,rep,name=tlvs" json:"tlvs,omitempty"`
}
@@ -2289,7 +2830,7 @@ type TunnelEncapTLV struct {
func (m *TunnelEncapTLV) Reset() { *m = TunnelEncapTLV{} }
func (m *TunnelEncapTLV) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapTLV) ProtoMessage() {}
-func (*TunnelEncapTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
+func (*TunnelEncapTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} }
func (m *TunnelEncapTLV) GetType() uint32 {
if m != nil {
@@ -2312,7 +2853,7 @@ type TunnelEncapAttribute struct {
func (m *TunnelEncapAttribute) Reset() { *m = TunnelEncapAttribute{} }
func (m *TunnelEncapAttribute) String() string { return proto.CompactTextString(m) }
func (*TunnelEncapAttribute) ProtoMessage() {}
-func (*TunnelEncapAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }
+func (*TunnelEncapAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} }
func (m *TunnelEncapAttribute) GetTlvs() []*TunnelEncapTLV {
if m != nil {
@@ -2331,7 +2872,7 @@ type IPv6AddressSpecificExtended struct {
func (m *IPv6AddressSpecificExtended) Reset() { *m = IPv6AddressSpecificExtended{} }
func (m *IPv6AddressSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*IPv6AddressSpecificExtended) ProtoMessage() {}
-func (*IPv6AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
+func (*IPv6AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} }
func (m *IPv6AddressSpecificExtended) GetIsTransitive() bool {
if m != nil {
@@ -2370,7 +2911,7 @@ func (m *RedirectIPv6AddressSpecificExtended) Reset() { *m = RedirectIPv
func (m *RedirectIPv6AddressSpecificExtended) String() string { return proto.CompactTextString(m) }
func (*RedirectIPv6AddressSpecificExtended) ProtoMessage() {}
func (*RedirectIPv6AddressSpecificExtended) Descriptor() ([]byte, []int) {
- return fileDescriptor0, []int{73}
+ return fileDescriptor0, []int{84}
}
func (m *RedirectIPv6AddressSpecificExtended) GetAddress() string {
@@ -2398,7 +2939,7 @@ func (m *IP6ExtendedCommunitiesAttribute) Reset() { *m = IP6ExtendedComm
func (m *IP6ExtendedCommunitiesAttribute) String() string { return proto.CompactTextString(m) }
func (*IP6ExtendedCommunitiesAttribute) ProtoMessage() {}
func (*IP6ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) {
- return fileDescriptor0, []int{74}
+ return fileDescriptor0, []int{85}
}
func (m *IP6ExtendedCommunitiesAttribute) GetCommunities() []*google_protobuf.Any {
@@ -2415,7 +2956,7 @@ type AigpTLVIGPMetric struct {
func (m *AigpTLVIGPMetric) Reset() { *m = AigpTLVIGPMetric{} }
func (m *AigpTLVIGPMetric) String() string { return proto.CompactTextString(m) }
func (*AigpTLVIGPMetric) ProtoMessage() {}
-func (*AigpTLVIGPMetric) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }
+func (*AigpTLVIGPMetric) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} }
func (m *AigpTLVIGPMetric) GetMetric() uint64 {
if m != nil {
@@ -2432,7 +2973,7 @@ type AigpTLVUnknown struct {
func (m *AigpTLVUnknown) Reset() { *m = AigpTLVUnknown{} }
func (m *AigpTLVUnknown) String() string { return proto.CompactTextString(m) }
func (*AigpTLVUnknown) ProtoMessage() {}
-func (*AigpTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }
+func (*AigpTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} }
func (m *AigpTLVUnknown) GetType() uint32 {
if m != nil {
@@ -2458,7 +2999,7 @@ type AigpAttribute struct {
func (m *AigpAttribute) Reset() { *m = AigpAttribute{} }
func (m *AigpAttribute) String() string { return proto.CompactTextString(m) }
func (*AigpAttribute) ProtoMessage() {}
-func (*AigpAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }
+func (*AigpAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} }
func (m *AigpAttribute) GetTlvs() []*google_protobuf.Any {
if m != nil {
@@ -2476,7 +3017,7 @@ type LargeCommunity struct {
func (m *LargeCommunity) Reset() { *m = LargeCommunity{} }
func (m *LargeCommunity) String() string { return proto.CompactTextString(m) }
func (*LargeCommunity) ProtoMessage() {}
-func (*LargeCommunity) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} }
+func (*LargeCommunity) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} }
func (m *LargeCommunity) GetGlobalAdmin() uint32 {
if m != nil {
@@ -2506,7 +3047,7 @@ type LargeCommunitiesAttribute struct {
func (m *LargeCommunitiesAttribute) Reset() { *m = LargeCommunitiesAttribute{} }
func (m *LargeCommunitiesAttribute) String() string { return proto.CompactTextString(m) }
func (*LargeCommunitiesAttribute) ProtoMessage() {}
-func (*LargeCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} }
+func (*LargeCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} }
func (m *LargeCommunitiesAttribute) GetCommunities() []*LargeCommunity {
if m != nil {
@@ -2527,7 +3068,7 @@ type LsNodeFlags struct {
func (m *LsNodeFlags) Reset() { *m = LsNodeFlags{} }
func (m *LsNodeFlags) String() string { return proto.CompactTextString(m) }
func (*LsNodeFlags) ProtoMessage() {}
-func (*LsNodeFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} }
+func (*LsNodeFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }
func (m *LsNodeFlags) GetOverload() bool {
if m != nil {
@@ -2581,7 +3122,7 @@ type LsIGPFlags struct {
func (m *LsIGPFlags) Reset() { *m = LsIGPFlags{} }
func (m *LsIGPFlags) String() string { return proto.CompactTextString(m) }
func (*LsIGPFlags) ProtoMessage() {}
-func (*LsIGPFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} }
+func (*LsIGPFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }
func (m *LsIGPFlags) GetDown() bool {
if m != nil {
@@ -2619,7 +3160,7 @@ type LsSrRange struct {
func (m *LsSrRange) Reset() { *m = LsSrRange{} }
func (m *LsSrRange) String() string { return proto.CompactTextString(m) }
func (*LsSrRange) ProtoMessage() {}
-func (*LsSrRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} }
+func (*LsSrRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }
func (m *LsSrRange) GetBegin() uint32 {
if m != nil {
@@ -2644,7 +3185,7 @@ type LsSrCapabilities struct {
func (m *LsSrCapabilities) Reset() { *m = LsSrCapabilities{} }
func (m *LsSrCapabilities) String() string { return proto.CompactTextString(m) }
func (*LsSrCapabilities) ProtoMessage() {}
-func (*LsSrCapabilities) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} }
+func (*LsSrCapabilities) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} }
func (m *LsSrCapabilities) GetIpv4Supported() bool {
if m != nil {
@@ -2674,7 +3215,7 @@ type LsSrLocalBlock struct {
func (m *LsSrLocalBlock) Reset() { *m = LsSrLocalBlock{} }
func (m *LsSrLocalBlock) String() string { return proto.CompactTextString(m) }
func (*LsSrLocalBlock) ProtoMessage() {}
-func (*LsSrLocalBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} }
+func (*LsSrLocalBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} }
func (m *LsSrLocalBlock) GetRanges() []*LsSrRange {
if m != nil {
@@ -2698,7 +3239,7 @@ type LsAttributeNode struct {
func (m *LsAttributeNode) Reset() { *m = LsAttributeNode{} }
func (m *LsAttributeNode) String() string { return proto.CompactTextString(m) }
func (*LsAttributeNode) ProtoMessage() {}
-func (*LsAttributeNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} }
+func (*LsAttributeNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} }
func (m *LsAttributeNode) GetName() string {
if m != nil {
@@ -2783,7 +3324,7 @@ type LsAttributeLink struct {
func (m *LsAttributeLink) Reset() { *m = LsAttributeLink{} }
func (m *LsAttributeLink) String() string { return proto.CompactTextString(m) }
func (*LsAttributeLink) ProtoMessage() {}
-func (*LsAttributeLink) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} }
+func (*LsAttributeLink) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} }
func (m *LsAttributeLink) GetName() string {
if m != nil {
@@ -2892,7 +3433,7 @@ type LsAttributePrefix struct {
func (m *LsAttributePrefix) Reset() { *m = LsAttributePrefix{} }
func (m *LsAttributePrefix) String() string { return proto.CompactTextString(m) }
func (*LsAttributePrefix) ProtoMessage() {}
-func (*LsAttributePrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} }
+func (*LsAttributePrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} }
func (m *LsAttributePrefix) GetIgpFlags() *LsIGPFlags {
if m != nil {
@@ -2924,7 +3465,7 @@ type LsAttribute struct {
func (m *LsAttribute) Reset() { *m = LsAttribute{} }
func (m *LsAttribute) String() string { return proto.CompactTextString(m) }
func (*LsAttribute) ProtoMessage() {}
-func (*LsAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} }
+func (*LsAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} }
func (m *LsAttribute) GetNode() *LsAttributeNode {
if m != nil {
@@ -2956,7 +3497,7 @@ type UnknownAttribute struct {
func (m *UnknownAttribute) Reset() { *m = UnknownAttribute{} }
func (m *UnknownAttribute) String() string { return proto.CompactTextString(m) }
func (*UnknownAttribute) ProtoMessage() {}
-func (*UnknownAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} }
+func (*UnknownAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{100} }
func (m *UnknownAttribute) GetFlags() uint32 {
if m != nil {
@@ -2992,7 +3533,7 @@ type SRv6StructureSubSubTLV struct {
func (m *SRv6StructureSubSubTLV) Reset() { *m = SRv6StructureSubSubTLV{} }
func (m *SRv6StructureSubSubTLV) String() string { return proto.CompactTextString(m) }
func (*SRv6StructureSubSubTLV) ProtoMessage() {}
-func (*SRv6StructureSubSubTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} }
+func (*SRv6StructureSubSubTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{101} }
func (m *SRv6StructureSubSubTLV) GetLocalBlockLength() uint32 {
if m != nil {
@@ -3044,7 +3585,7 @@ type SRv6SIDFlags struct {
func (m *SRv6SIDFlags) Reset() { *m = SRv6SIDFlags{} }
func (m *SRv6SIDFlags) String() string { return proto.CompactTextString(m) }
func (*SRv6SIDFlags) ProtoMessage() {}
-func (*SRv6SIDFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }
+func (*SRv6SIDFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{102} }
func (m *SRv6SIDFlags) GetFlag_1() bool {
if m != nil {
@@ -3060,7 +3601,7 @@ type SRv6TLV struct {
func (m *SRv6TLV) Reset() { *m = SRv6TLV{} }
func (m *SRv6TLV) String() string { return proto.CompactTextString(m) }
func (*SRv6TLV) ProtoMessage() {}
-func (*SRv6TLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }
+func (*SRv6TLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{103} }
func (m *SRv6TLV) GetTlv() []*google_protobuf.Any {
if m != nil {
@@ -3082,7 +3623,7 @@ type SRv6InformationSubTLV struct {
func (m *SRv6InformationSubTLV) Reset() { *m = SRv6InformationSubTLV{} }
func (m *SRv6InformationSubTLV) String() string { return proto.CompactTextString(m) }
func (*SRv6InformationSubTLV) ProtoMessage() {}
-func (*SRv6InformationSubTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }
+func (*SRv6InformationSubTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{104} }
func (m *SRv6InformationSubTLV) GetSid() []byte {
if m != nil {
@@ -3122,7 +3663,7 @@ type SRv6L3ServiceTLV struct {
func (m *SRv6L3ServiceTLV) Reset() { *m = SRv6L3ServiceTLV{} }
func (m *SRv6L3ServiceTLV) String() string { return proto.CompactTextString(m) }
func (*SRv6L3ServiceTLV) ProtoMessage() {}
-func (*SRv6L3ServiceTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} }
+func (*SRv6L3ServiceTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{105} }
func (m *SRv6L3ServiceTLV) GetSubTlvs() map[uint32]*SRv6TLV {
if m != nil {
@@ -3144,7 +3685,7 @@ type PrefixSID struct {
func (m *PrefixSID) Reset() { *m = PrefixSID{} }
func (m *PrefixSID) String() string { return proto.CompactTextString(m) }
func (*PrefixSID) ProtoMessage() {}
-func (*PrefixSID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} }
+func (*PrefixSID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{106} }
func (m *PrefixSID) GetTlvs() []*google_protobuf.Any {
if m != nil {
@@ -3178,6 +3719,7 @@ func init() {
proto.RegisterType((*EVPNEthernetSegmentRoute)(nil), "gobgpapi.EVPNEthernetSegmentRoute")
proto.RegisterType((*EVPNIPPrefixRoute)(nil), "gobgpapi.EVPNIPPrefixRoute")
proto.RegisterType((*EVPNIPMSIRoute)(nil), "gobgpapi.EVPNIPMSIRoute")
+ proto.RegisterType((*SRPolicyNLRI)(nil), "gobgpapi.SRPolicyNLRI")
proto.RegisterType((*LabeledVPNIPAddressPrefix)(nil), "gobgpapi.LabeledVPNIPAddressPrefix")
proto.RegisterType((*RouteTargetMembershipNLRI)(nil), "gobgpapi.RouteTargetMembershipNLRI")
proto.RegisterType((*FlowSpecIPPrefix)(nil), "gobgpapi.FlowSpecIPPrefix")
@@ -3223,6 +3765,16 @@ func init() {
proto.RegisterType((*TunnelEncapSubTLVEncapsulation)(nil), "gobgpapi.TunnelEncapSubTLVEncapsulation")
proto.RegisterType((*TunnelEncapSubTLVProtocol)(nil), "gobgpapi.TunnelEncapSubTLVProtocol")
proto.RegisterType((*TunnelEncapSubTLVColor)(nil), "gobgpapi.TunnelEncapSubTLVColor")
+ proto.RegisterType((*TunnelEncapSubTLVSRPreference)(nil), "gobgpapi.TunnelEncapSubTLVSRPreference")
+ proto.RegisterType((*SRBindingSID)(nil), "gobgpapi.SRBindingSID")
+ proto.RegisterType((*SRv6EndPpointBehavior)(nil), "gobgpapi.SRv6EndPpointBehavior")
+ proto.RegisterType((*SRv6BindingSID)(nil), "gobgpapi.SRv6BindingSID")
+ proto.RegisterType((*TunnelEncapSubTLVSRENLP)(nil), "gobgpapi.TunnelEncapSubTLVSRENLP")
+ proto.RegisterType((*SRWeight)(nil), "gobgpapi.SRWeight")
+ proto.RegisterType((*SegmentFlags)(nil), "gobgpapi.SegmentFlags")
+ proto.RegisterType((*SegmentTypeA)(nil), "gobgpapi.SegmentTypeA")
+ proto.RegisterType((*SegmentList)(nil), "gobgpapi.SegmentList")
+ proto.RegisterType((*TunnelEncapSubTLVSRPolicy)(nil), "gobgpapi.TunnelEncapSubTLVSRPolicy")
proto.RegisterType((*TunnelEncapSubTLVUnknown)(nil), "gobgpapi.TunnelEncapSubTLVUnknown")
proto.RegisterType((*TunnelEncapTLV)(nil), "gobgpapi.TunnelEncapTLV")
proto.RegisterType((*TunnelEncapAttribute)(nil), "gobgpapi.TunnelEncapAttribute")
@@ -3252,228 +3804,274 @@ func init() {
proto.RegisterType((*PrefixSID)(nil), "gobgpapi.PrefixSID")
proto.RegisterEnum("gobgpapi.LsNLRIType", LsNLRIType_name, LsNLRIType_value)
proto.RegisterEnum("gobgpapi.LsProtocolID", LsProtocolID_name, LsProtocolID_value)
+ proto.RegisterEnum("gobgpapi.SRv6Behavior", SRv6Behavior_name, SRv6Behavior_value)
}
func init() { proto.RegisterFile("attribute.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
- // 3479 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x39, 0xcb, 0x72, 0x1c, 0x47,
- 0x72, 0x9e, 0x07, 0xc0, 0x99, 0x9c, 0x57, 0xa3, 0x01, 0xc2, 0x03, 0x50, 0x14, 0xe9, 0xd6, 0x4a,
- 0x84, 0x49, 0x09, 0x32, 0x41, 0x68, 0x76, 0x25, 0xc5, 0xda, 0x31, 0x04, 0x40, 0xee, 0x58, 0x03,
- 0x60, 0xd4, 0x03, 0x62, 0xed, 0x8b, 0xdb, 0x3d, 0xdd, 0x35, 0x8d, 0x32, 0x7a, 0xba, 0x7b, 0xab,
- 0xba, 0x87, 0xc4, 0xc9, 0x11, 0x3e, 0x38, 0x62, 0xc3, 0x61, 0x87, 0x4f, 0x8e, 0x8d, 0xd8, 0x8b,
- 0x2f, 0x76, 0x84, 0xfd, 0x01, 0xbe, 0xf8, 0x0b, 0x7c, 0xf6, 0xb7, 0xf8, 0xee, 0xa8, 0x57, 0x3f,
- 0x06, 0x03, 0x3e, 0x44, 0x29, 0x82, 0xb7, 0xca, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0x7c, 0x15,
- 0x74, 0xec, 0x38, 0x26, 0x78, 0x92, 0xc4, 0x68, 0x37, 0x22, 0x61, 0x1c, 0xea, 0x35, 0x2f, 0x9c,
- 0x78, 0x91, 0x1d, 0xe1, 0xed, 0x2d, 0x2f, 0x0c, 0x3d, 0x1f, 0x7d, 0xc9, 0xf1, 0x93, 0x64, 0xfa,
- 0xa5, 0x1d, 0x5c, 0x09, 0xa2, 0xed, 0x06, 0x27, 0x12, 0x80, 0xf1, 0xc7, 0xd0, 0x39, 0x25, 0xd8,
- 0xc3, 0x41, 0x5f, 0xb1, 0xd2, 0x37, 0x61, 0x35, 0xe4, 0xa8, 0x6e, 0xe9, 0x7e, 0x69, 0xa7, 0x65,
- 0x4a, 0xc8, 0xf8, 0x1a, 0xea, 0x7d, 0x3a, 0x46, 0xde, 0x0c, 0x05, 0xb1, 0xae, 0x43, 0x35, 0xbe,
- 0x8a, 0x90, 0x24, 0xe1, 0x63, 0xbd, 0x0b, 0xb7, 0x82, 0x64, 0x36, 0x41, 0x84, 0x76, 0xcb, 0xf7,
- 0x2b, 0x3b, 0x2d, 0x53, 0x81, 0xc6, 0x53, 0xe8, 0xf4, 0xe9, 0xc8, 0x8e, 0x2f, 0xb2, 0x5d, 0xbe,
- 0x84, 0x1a, 0x15, 0xbc, 0x68, 0xb7, 0x74, 0xbf, 0xb2, 0xd3, 0xd8, 0x5b, 0xdf, 0x55, 0xd2, 0xef,
- 0xa6, 0xfb, 0x98, 0x29, 0x91, 0xf1, 0x05, 0x68, 0x27, 0xe8, 0x55, 0xfc, 0xab, 0x30, 0xca, 0x98,
- 0x6c, 0x41, 0x2d, 0x40, 0xaf, 0x62, 0xeb, 0x22, 0x8c, 0xb8, 0x24, 0x75, 0xf3, 0x56, 0x20, 0x68,
- 0x8c, 0x87, 0xb0, 0x79, 0x9c, 0xf8, 0x31, 0x3e, 0x7a, 0x85, 0xe3, 0x43, 0x4c, 0x9d, 0x6c, 0x91,
- 0x06, 0x95, 0x19, 0x72, 0xa5, 0xe4, 0x6c, 0x68, 0x3c, 0x01, 0x7d, 0x18, 0x3a, 0xb6, 0x3f, 0x22,
- 0x68, 0x9a, 0xd1, 0xdd, 0x05, 0xf0, 0x19, 0xd6, 0x8a, 0x08, 0x9a, 0x4a, 0xf2, 0xba, 0xaf, 0xe8,
- 0x8c, 0x6d, 0xe8, 0xf6, 0xe3, 0x70, 0x86, 0x9d, 0xbe, 0xe7, 0x11, 0xe4, 0xd9, 0x31, 0x4a, 0x97,
- 0x1a, 0x7f, 0x06, 0xeb, 0x0a, 0x1b, 0x92, 0x8c, 0x63, 0x1b, 0xca, 0x36, 0xd3, 0x0d, 0xe3, 0x54,
- 0xb6, 0x29, 0x53, 0x98, 0xed, 0xba, 0x04, 0x51, 0xda, 0xad, 0x08, 0xe9, 0x25, 0x68, 0xfc, 0x02,
- 0x36, 0x0e, 0xc2, 0xd9, 0x2c, 0x09, 0x70, 0x8c, 0x11, 0xcd, 0x38, 0xdc, 0x87, 0x86, 0x93, 0xe1,
- 0xb9, 0xe2, 0x5a, 0x66, 0x1e, 0x65, 0x3c, 0x80, 0xdb, 0xe2, 0x42, 0xd9, 0xd6, 0x03, 0xb7, 0xb0,
- 0x39, 0x76, 0xa5, 0x96, 0xca, 0xd8, 0x35, 0x76, 0x60, 0xe3, 0xc0, 0x4f, 0x68, 0x8c, 0xc8, 0x10,
- 0xd3, 0xb8, 0xa0, 0x1e, 0xec, 0x0a, 0xd6, 0x75, 0x93, 0x0d, 0x8d, 0x5f, 0x41, 0x67, 0x30, 0xea,
- 0x0b, 0xc9, 0xd8, 0xd1, 0xf1, 0x2b, 0xa6, 0x9b, 0x88, 0x8f, 0x2c, 0x1f, 0x29, 0x3b, 0xa9, 0x0b,
- 0xcc, 0x10, 0x05, 0xcc, 0x84, 0x04, 0xc0, 0x0f, 0x5b, 0x37, 0x25, 0x64, 0x78, 0xb0, 0x39, 0xb4,
- 0x27, 0xc8, 0x47, 0xee, 0x22, 0xc3, 0x4d, 0x58, 0xf5, 0xd9, 0x8c, 0x3a, 0x93, 0x84, 0x16, 0x36,
- 0x2a, 0xdf, 0xbc, 0x51, 0xa5, 0xb0, 0xd1, 0x17, 0xb0, 0x76, 0x14, 0x38, 0x76, 0x44, 0x13, 0xdf,
- 0x8e, 0x71, 0x18, 0x9c, 0x0c, 0xcd, 0x41, 0x5e, 0xdd, 0xa5, 0xa2, 0xba, 0x47, 0xf0, 0x91, 0x19,
- 0x26, 0x31, 0x3a, 0xc4, 0x34, 0xc6, 0x81, 0x97, 0x60, 0x7a, 0x81, 0xc8, 0xd9, 0xcb, 0xf0, 0xd4,
- 0x89, 0x51, 0xdc, 0x1f, 0xeb, 0x1b, 0xb0, 0x62, 0xbb, 0xb3, 0xf4, 0x45, 0x08, 0x40, 0xdf, 0x86,
- 0x9a, 0x4d, 0x29, 0xf6, 0x02, 0xe4, 0x4a, 0xc9, 0x52, 0xd8, 0x38, 0x85, 0x3b, 0xd7, 0x39, 0xa6,
- 0x87, 0x2e, 0x32, 0xac, 0xbf, 0x0d, 0xc3, 0xef, 0xe1, 0xee, 0x75, 0x86, 0xcf, 0xc2, 0x84, 0xfc,
- 0x70, 0x19, 0x8f, 0x60, 0xeb, 0x28, 0xbe, 0x40, 0x24, 0x40, 0xb1, 0x7c, 0x6e, 0x03, 0x17, 0x05,
- 0x31, 0x9e, 0x62, 0x44, 0x96, 0x3e, 0xf0, 0x0d, 0x58, 0x99, 0xdb, 0x7e, 0x82, 0x38, 0xa7, 0xa6,
- 0x29, 0x00, 0xe3, 0xbf, 0x4a, 0xf0, 0xf1, 0xd1, 0xf9, 0xe8, 0x44, 0xf1, 0xea, 0x27, 0x71, 0xc8,
- 0x5e, 0x5c, 0x38, 0x47, 0xe4, 0x8a, 0xcb, 0xac, 0xff, 0x0c, 0xca, 0x44, 0xd8, 0x5e, 0x63, 0x6f,
- 0x63, 0x57, 0xb8, 0xa6, 0x5d, 0xe5, 0x9a, 0x76, 0xfb, 0xc1, 0x95, 0x59, 0x26, 0xae, 0xfe, 0x15,
- 0x54, 0x10, 0xc5, 0x9c, 0x79, 0x63, 0xef, 0x93, 0xcc, 0x1b, 0xdc, 0x28, 0xa4, 0xc9, 0xe8, 0xf5,
- 0x3f, 0x82, 0x26, 0x92, 0x14, 0x56, 0x6c, 0x7b, 0xdc, 0x12, 0x5a, 0x66, 0x43, 0xe1, 0xce, 0x6c,
- 0x8f, 0x09, 0xce, 0xed, 0xa9, 0x5b, 0x15, 0xba, 0xe1, 0x80, 0xf1, 0x7f, 0x25, 0xb8, 0xc3, 0x04,
- 0x3f, 0xee, 0x1f, 0xb0, 0x9b, 0x99, 0x23, 0x12, 0x63, 0x8a, 0xb8, 0xdb, 0xf9, 0x20, 0xa4, 0xbe,
- 0x07, 0x8d, 0x99, 0xed, 0x58, 0xca, 0x66, 0xab, 0xdc, 0x54, 0x60, 0x66, 0x3b, 0xca, 0x8a, 0xee,
- 0x02, 0xe0, 0x28, 0x9d, 0x5f, 0xe1, 0xf3, 0x75, 0x1c, 0xa9, 0xe9, 0xec, 0x4d, 0xad, 0xe6, 0xdf,
- 0x94, 0xf1, 0xcf, 0x25, 0xf8, 0x8c, 0x9d, 0x7b, 0x10, 0x38, 0x7e, 0x42, 0xf1, 0x1c, 0x71, 0x47,
- 0xe9, 0xd8, 0x34, 0x3e, 0xca, 0x76, 0x7f, 0x17, 0x15, 0x2c, 0x9e, 0xa5, 0x7c, 0xfd, 0x2c, 0x45,
- 0x51, 0x2b, 0x0b, 0xa2, 0x1a, 0xff, 0x52, 0x82, 0x6e, 0xde, 0x86, 0x94, 0xfb, 0xff, 0xe9, 0xef,
- 0xe1, 0x0d, 0x82, 0xfd, 0xb6, 0x0c, 0x6b, 0x5c, 0x57, 0x23, 0xe1, 0xa8, 0x3e, 0x0c, 0xcb, 0xb8,
- 0x03, 0x75, 0x1c, 0x59, 0xd2, 0xf3, 0x09, 0xbb, 0xa8, 0xe1, 0x48, 0xba, 0x52, 0x03, 0x5a, 0xe9,
- 0x24, 0xf7, 0x9a, 0x2b, 0x82, 0x81, 0x22, 0x60, 0x7e, 0xf3, 0x2e, 0x80, 0xf7, 0x32, 0x3d, 0xf5,
- 0xaa, 0x38, 0xb5, 0xf7, 0x32, 0xe7, 0x9e, 0xc4, 0x7b, 0xb9, 0x95, 0x7f, 0x2f, 0x7f, 0x0b, 0x6d,
- 0xa1, 0x8a, 0xe3, 0xf1, 0xe0, 0x47, 0x36, 0x0f, 0xc6, 0x28, 0xe6, 0x27, 0xbd, 0x99, 0x51, 0xcc,
- 0x0c, 0x77, 0x4b, 0xc6, 0x0f, 0x2e, 0xc7, 0xdb, 0x85, 0x10, 0x21, 0x64, 0xf9, 0x0d, 0x42, 0x16,
- 0x03, 0x4d, 0xe5, 0xe6, 0x40, 0x53, 0x2d, 0x04, 0x9a, 0xef, 0x61, 0x8b, 0xab, 0xe2, 0xcc, 0x26,
- 0x1e, 0x8a, 0x8f, 0x11, 0xcf, 0x77, 0x2e, 0x70, 0xc4, 0x03, 0x8e, 0x88, 0xf7, 0xa5, 0x34, 0xde,
- 0x8b, 0x53, 0x96, 0xdf, 0x70, 0xca, 0x04, 0xb4, 0x67, 0x7e, 0xf8, 0x72, 0x1c, 0x21, 0x47, 0x59,
- 0xdd, 0x52, 0x6f, 0xfc, 0xc3, 0x42, 0x23, 0x4f, 0xef, 0xa6, 0x53, 0x8a, 0x62, 0xe9, 0x0c, 0x25,
- 0x64, 0x7c, 0x0b, 0x0d, 0xb5, 0xed, 0x71, 0xff, 0xe0, 0xa6, 0x04, 0x4f, 0x99, 0x4c, 0xb9, 0x18,
- 0x40, 0x7f, 0x09, 0xb7, 0xd5, 0xe2, 0x83, 0x70, 0x16, 0x85, 0x01, 0xb3, 0xeb, 0x18, 0xcd, 0x98,
- 0x0a, 0x64, 0x6e, 0xd6, 0x32, 0xcb, 0x61, 0x54, 0x0c, 0x21, 0x55, 0x15, 0x42, 0xfe, 0x0a, 0xd6,
- 0xae, 0x2d, 0x5f, 0x2a, 0xc1, 0x57, 0xb0, 0x82, 0x63, 0x34, 0x13, 0x09, 0x66, 0x63, 0xef, 0x5e,
- 0xf6, 0xa8, 0x96, 0x6e, 0x6f, 0x0a, 0x6a, 0xe3, 0x1b, 0x68, 0xaa, 0x79, 0x7e, 0x31, 0x0f, 0x61,
- 0x85, 0x24, 0x3e, 0x52, 0x99, 0xe7, 0xf2, 0xbb, 0x10, 0x24, 0x86, 0x03, 0x9d, 0xf3, 0xd1, 0x49,
- 0x61, 0xf9, 0xdb, 0x99, 0x7d, 0xba, 0x49, 0xf9, 0xcd, 0x9b, 0xec, 0x03, 0x9c, 0x46, 0xf6, 0x6f,
- 0x12, 0xc4, 0xf9, 0x6b, 0x50, 0xb9, 0x44, 0x57, 0x7c, 0x83, 0xa6, 0xc9, 0x86, 0x37, 0x44, 0xde,
- 0x7f, 0x2f, 0x81, 0x36, 0xa4, 0x27, 0xa1, 0x8b, 0x0e, 0x11, 0x75, 0x08, 0x8e, 0xe2, 0x90, 0xb0,
- 0xc5, 0x36, 0x55, 0x59, 0x00, 0x1b, 0xea, 0xdb, 0x50, 0x9f, 0x78, 0x91, 0xe5, 0x53, 0x0b, 0xab,
- 0x24, 0xe0, 0xd6, 0xc4, 0x8b, 0x86, 0x74, 0xe0, 0xea, 0xf7, 0xa1, 0x19, 0xd2, 0x68, 0x6a, 0xd9,
- 0x04, 0xd9, 0x6c, 0x5a, 0x18, 0x3e, 0x30, 0x5c, 0x9f, 0x20, 0x7b, 0xe0, 0xea, 0x1f, 0x03, 0x44,
- 0x14, 0x25, 0x6e, 0x18, 0x84, 0x2e, 0xe2, 0x36, 0x53, 0x33, 0x73, 0x18, 0xee, 0x6e, 0xbc, 0xc8,
- 0x22, 0xec, 0x15, 0x10, 0xc6, 0x42, 0xc4, 0xa1, 0x06, 0xf6, 0x22, 0xfe, 0x32, 0xc8, 0xc0, 0x35,
- 0x7e, 0x57, 0x66, 0x82, 0x0e, 0x71, 0x70, 0x99, 0x13, 0xd4, 0x80, 0x96, 0x8f, 0x83, 0x4b, 0x4b,
- 0x24, 0xd9, 0x58, 0x65, 0xe4, 0x0d, 0x86, 0xe4, 0xe9, 0xf8, 0xc0, 0xd5, 0x7f, 0x06, 0x6d, 0x4e,
- 0x43, 0xd0, 0x2c, 0x8c, 0x51, 0x26, 0x7f, 0x93, 0x61, 0x4d, 0x8e, 0x1c, 0xb8, 0xfa, 0x2e, 0xac,
- 0xe3, 0x20, 0x46, 0x64, 0x6a, 0x3b, 0x88, 0x3b, 0x35, 0x0b, 0x47, 0xf3, 0x7d, 0x69, 0xf7, 0x6b,
- 0xe9, 0x14, 0x73, 0x17, 0x83, 0x68, 0xbe, 0xaf, 0x7f, 0x0e, 0x7a, 0x80, 0xb0, 0x77, 0x31, 0x09,
- 0x49, 0x8e, 0x5c, 0x3c, 0x6c, 0x4d, 0xcd, 0xa4, 0xd4, 0x4b, 0xb9, 0xf7, 0xe4, 0x31, 0xaf, 0x71,
- 0xef, 0x2d, 0xe5, 0xde, 0x93, 0x3e, 0x76, 0x91, 0x7b, 0xcf, 0x40, 0xa0, 0x0f, 0xa5, 0x07, 0xcb,
- 0xe9, 0xe6, 0x01, 0x74, 0x70, 0x64, 0x11, 0x64, 0x3b, 0x17, 0xf6, 0x04, 0xfb, 0x38, 0xbe, 0x92,
- 0x09, 0x79, 0x1b, 0x47, 0x66, 0x0e, 0xab, 0x7f, 0x06, 0x1d, 0x7e, 0x7f, 0x5c, 0xfd, 0x16, 0x7f,
- 0x2f, 0xe2, 0x69, 0xb6, 0x18, 0x5a, 0xb8, 0xa6, 0xab, 0x08, 0x19, 0xcf, 0x01, 0x84, 0xa5, 0x70,
- 0x03, 0xfb, 0x5a, 0x95, 0x36, 0xfc, 0x4e, 0x85, 0x21, 0x6f, 0x67, 0x6f, 0x69, 0xd1, 0xa6, 0x64,
- 0xd9, 0xc3, 0x90, 0xc6, 0xff, 0x94, 0x18, 0x27, 0x76, 0x95, 0xef, 0xc9, 0x49, 0xff, 0x16, 0x1a,
- 0xf2, 0x5a, 0xf9, 0xda, 0xf2, 0x1b, 0xd7, 0x82, 0x20, 0xe7, 0x8b, 0x0f, 0xa0, 0xc3, 0x0d, 0xc3,
- 0x4d, 0xa7, 0x65, 0xf4, 0x28, 0x30, 0x28, 0x5a, 0x9c, 0xc9, 0x6d, 0x29, 0x83, 0x59, 0xd6, 0xd1,
- 0x56, 0xca, 0x3f, 0xdf, 0x7f, 0xdf, 0xf3, 0x0c, 0x60, 0x4d, 0xfa, 0xe3, 0x9c, 0x50, 0xe2, 0x54,
- 0x1f, 0xe5, 0x39, 0x2c, 0x5e, 0xb6, 0xa9, 0x45, 0x0b, 0x98, 0xa2, 0x60, 0xbd, 0x0f, 0x48, 0xb0,
- 0xff, 0x2d, 0x41, 0x73, 0x48, 0x99, 0xf1, 0xca, 0xc0, 0xb4, 0x93, 0x73, 0xd2, 0x6d, 0xee, 0xe3,
- 0x32, 0x81, 0x86, 0xe6, 0x80, 0xd9, 0x9e, 0x74, 0xdd, 0x3b, 0x50, 0x0d, 0x7c, 0x82, 0x5f, 0x1b,
- 0xfe, 0x38, 0x05, 0x0f, 0xe4, 0x28, 0xf0, 0xe2, 0x0b, 0xe9, 0x8d, 0x24, 0xa4, 0xff, 0x1c, 0x1a,
- 0x9c, 0xda, 0x09, 0xb9, 0xbb, 0xa8, 0xf2, 0x2d, 0x37, 0x8b, 0x27, 0x10, 0xd3, 0x83, 0x43, 0x13,
- 0x14, 0xa9, 0x70, 0x61, 0x38, 0x4d, 0xb2, 0xf8, 0xc3, 0xad, 0x9a, 0x39, 0x8c, 0xf1, 0xdb, 0x12,
- 0x6c, 0x1c, 0x8b, 0x77, 0xc5, 0x84, 0xce, 0x6a, 0xe1, 0x1d, 0x58, 0x9d, 0xda, 0x33, 0xec, 0x5f,
- 0x49, 0x85, 0x6b, 0xb9, 0x78, 0xc3, 0xf1, 0xa6, 0x9c, 0x67, 0x19, 0x99, 0xea, 0x44, 0x08, 0x87,
- 0x5f, 0x37, 0x6b, 0xb2, 0x15, 0x41, 0x59, 0x24, 0x60, 0x07, 0x63, 0xe9, 0xe5, 0x6b, 0x22, 0x01,
- 0x27, 0x31, 0x02, 0xd8, 0x3c, 0x8e, 0x5e, 0x04, 0xe4, 0x7d, 0x84, 0x79, 0x97, 0xfd, 0xfe, 0xb1,
- 0x04, 0xdb, 0x69, 0xa5, 0x4b, 0x59, 0x88, 0xc3, 0x53, 0xec, 0x1c, 0xbd, 0x8a, 0x51, 0xe0, 0x22,
- 0x57, 0xff, 0x04, 0x5a, 0x98, 0x5a, 0x31, 0xb1, 0x03, 0x8a, 0x63, 0x3c, 0x17, 0x17, 0x5d, 0x33,
- 0x9b, 0x98, 0x9e, 0xa5, 0x38, 0x7d, 0x0b, 0x6a, 0x34, 0x99, 0x64, 0xde, 0xa7, 0x65, 0xde, 0xa2,
- 0xc9, 0x84, 0xdd, 0xbd, 0x4c, 0x81, 0x2a, 0x69, 0x0a, 0x74, 0x0f, 0x1a, 0xc2, 0x8c, 0x45, 0xad,
- 0x2a, 0x52, 0x10, 0x61, 0xd9, 0x7d, 0x86, 0x31, 0x7e, 0x57, 0x82, 0x3b, 0x83, 0xd1, 0x7c, 0x5f,
- 0xe6, 0x76, 0x3f, 0xba, 0x40, 0x37, 0xf6, 0x5c, 0xde, 0x2c, 0xda, 0x3f, 0x95, 0xe0, 0x4e, 0x56,
- 0x71, 0x7f, 0x00, 0xba, 0x7a, 0x08, 0xfa, 0xb9, 0xed, 0x63, 0x97, 0xb7, 0x38, 0x52, 0x31, 0x36,
- 0x60, 0x85, 0xc6, 0x76, 0xac, 0x12, 0x27, 0x01, 0x18, 0x9f, 0x42, 0xeb, 0x20, 0xf4, 0x43, 0x92,
- 0x27, 0x73, 0x18, 0x42, 0x91, 0x71, 0xc0, 0xf8, 0x13, 0x68, 0xf1, 0xc6, 0x49, 0x4a, 0x76, 0x0f,
- 0x1a, 0x71, 0x12, 0x04, 0xc8, 0xb7, 0x72, 0xc9, 0x18, 0x08, 0x14, 0x8f, 0x2c, 0x5d, 0xd8, 0x3c,
- 0x44, 0x53, 0x3b, 0xf1, 0xe3, 0xe7, 0x76, 0x8c, 0x5e, 0xda, 0x57, 0x6a, 0xa9, 0xf1, 0x1d, 0xb4,
- 0x45, 0x52, 0xf3, 0x6e, 0x1a, 0x4a, 0x73, 0x9d, 0x4a, 0x3e, 0xd7, 0x31, 0x41, 0x3b, 0x1a, 0x0f,
- 0x78, 0xf6, 0x9f, 0xb2, 0xdb, 0x01, 0x0d, 0x53, 0x8b, 0xe2, 0xc0, 0xf3, 0x91, 0x65, 0x3b, 0x39,
- 0x8e, 0x6d, 0x4c, 0xc7, 0x1c, 0xdd, 0x77, 0x14, 0x4f, 0x51, 0xd0, 0x94, 0xf3, 0x05, 0xcd, 0x1e,
- 0xac, 0x1f, 0x8d, 0x07, 0xb3, 0x28, 0x24, 0x71, 0x2e, 0x89, 0x67, 0x6f, 0x19, 0x51, 0x0b, 0x73,
- 0xbc, 0x6c, 0xd0, 0xd4, 0x10, 0x15, 0x74, 0xc6, 0x0b, 0x58, 0x3f, 0xb6, 0x9d, 0xe3, 0x50, 0xc4,
- 0xdf, 0x54, 0x14, 0x56, 0x91, 0x51, 0x8b, 0xc6, 0xd8, 0xb9, 0xbc, 0x92, 0x32, 0xd4, 0x30, 0x1d,
- 0x73, 0x98, 0x15, 0x40, 0x14, 0xfd, 0x26, 0x41, 0x81, 0x83, 0xac, 0x20, 0x99, 0xa9, 0x02, 0x48,
- 0xe1, 0x4e, 0x92, 0x99, 0xf1, 0x29, 0xac, 0x89, 0x6c, 0xe9, 0xd8, 0xce, 0x0c, 0x4a, 0x83, 0xca,
- 0xcc, 0x76, 0xa4, 0x08, 0x6c, 0x68, 0x7c, 0x0d, 0xeb, 0x67, 0xc4, 0x9e, 0x4e, 0xb1, 0x63, 0xda,
- 0x71, 0xa6, 0xd7, 0xc5, 0x42, 0x43, 0x87, 0x2a, 0x61, 0x16, 0xc0, 0x36, 0x2a, 0x9b, 0x7c, 0x6c,
- 0x7c, 0x07, 0xb7, 0xe5, 0x52, 0xa6, 0x93, 0x9c, 0xbd, 0x6c, 0x43, 0x2d, 0x46, 0x64, 0x86, 0x03,
- 0xdb, 0x57, 0x92, 0x2b, 0x98, 0xb9, 0x62, 0x6a, 0xcf, 0x22, 0x5f, 0xb0, 0xaa, 0x99, 0x12, 0x32,
- 0x5e, 0x80, 0x61, 0x22, 0x17, 0x13, 0xe4, 0xc4, 0xaf, 0x71, 0x1e, 0x8b, 0x62, 0x2d, 0x18, 0x74,
- 0xf9, 0x9a, 0x41, 0xff, 0x35, 0x7c, 0xa2, 0xd8, 0xbe, 0xce, 0x07, 0xdc, 0xd8, 0xc8, 0x7b, 0xf3,
- 0x0e, 0xe7, 0xd9, 0x0e, 0xaf, 0x7b, 0xca, 0xef, 0x2c, 0xf9, 0xa3, 0x54, 0xbb, 0x26, 0x9a, 0xd9,
- 0xe4, 0x32, 0xe5, 0xa4, 0x43, 0xd5, 0xa5, 0x8e, 0x2a, 0x81, 0xf8, 0xd8, 0xf8, 0x16, 0x3a, 0x2f,
- 0x82, 0xcb, 0x20, 0x7c, 0x19, 0xe4, 0xc9, 0xde, 0xb2, 0xdd, 0x76, 0x0e, 0x1f, 0xa9, 0x55, 0x4b,
- 0x5b, 0xc4, 0xbd, 0xeb, 0x2d, 0xe2, 0x9b, 0x42, 0x40, 0xa1, 0x71, 0x7c, 0x00, 0x5a, 0x9f, 0xee,
- 0xbf, 0x67, 0x93, 0xfe, 0x29, 0x6c, 0xf6, 0xe9, 0xfe, 0xfb, 0xf5, 0xbe, 0x11, 0xac, 0x8f, 0x66,
- 0x14, 0x9f, 0x71, 0x17, 0x93, 0x31, 0xd8, 0x80, 0x95, 0xa9, 0x6f, 0x7b, 0xea, 0x56, 0x04, 0x90,
- 0xea, 0xad, 0x5c, 0xd4, 0x9b, 0x78, 0xec, 0x95, 0xdc, 0x63, 0x97, 0xfd, 0xef, 0x2a, 0x57, 0x65,
- 0x19, 0xbb, 0xc6, 0x9f, 0xc3, 0xc7, 0x62, 0x0b, 0xee, 0xef, 0xc6, 0xc9, 0xe4, 0x6c, 0x78, 0x5e,
- 0xe8, 0x19, 0xe7, 0xcb, 0xb0, 0x96, 0x28, 0xc3, 0x36, 0x61, 0xd5, 0x09, 0xc3, 0x4b, 0xac, 0xae,
- 0x44, 0x42, 0xc6, 0xcf, 0x61, 0xeb, 0x1a, 0x2f, 0x95, 0x8b, 0xb0, 0xf7, 0xa5, 0x72, 0x11, 0xc9,
- 0x2b, 0x85, 0x8d, 0x5d, 0xd8, 0xbc, 0xb6, 0x90, 0xbb, 0xe9, 0x1b, 0xdc, 0xf3, 0x21, 0x74, 0xaf,
- 0xd1, 0x4b, 0x53, 0x7a, 0x07, 0x13, 0x3a, 0x81, 0x76, 0x8e, 0xcb, 0xd9, 0xf0, 0x7c, 0xe9, 0x5a,
- 0x96, 0xda, 0xf9, 0xf3, 0xd7, 0x97, 0xaf, 0x9c, 0xc2, 0x38, 0x84, 0x8d, 0x1c, 0xbf, 0xec, 0xca,
- 0x3e, 0x97, 0x1c, 0x84, 0xe9, 0x74, 0x33, 0xd3, 0x29, 0xee, 0x2e, 0xb9, 0xc8, 0xc8, 0xdf, 0xfb,
- 0x00, 0x23, 0x7f, 0xd1, 0x2f, 0xf5, 0x7e, 0x02, 0xbf, 0xf4, 0x97, 0x70, 0x6f, 0x30, 0xea, 0xfd,
- 0x24, 0x0f, 0xfb, 0x21, 0x68, 0x7d, 0xec, 0x31, 0x45, 0x0f, 0x9e, 0x8f, 0x8e, 0x51, 0x4c, 0xb0,
- 0xc3, 0x0c, 0x79, 0xc6, 0x47, 0x5c, 0xd0, 0xaa, 0x29, 0x21, 0xe3, 0x1b, 0x68, 0x4b, 0xda, 0x77,
- 0xb7, 0xaa, 0xaf, 0xa1, 0xc5, 0xd6, 0xe6, 0x13, 0xd6, 0xfc, 0xf5, 0xbf, 0xce, 0x80, 0x12, 0x68,
- 0x0f, 0x59, 0xec, 0x55, 0xe7, 0xe6, 0x21, 0xd3, 0xf3, 0xc3, 0x49, 0xaa, 0x31, 0xd9, 0x1b, 0x10,
- 0x38, 0xae, 0xb2, 0x4c, 0xa7, 0xae, 0x1d, 0xdb, 0x8f, 0x0b, 0x3a, 0x3d, 0x64, 0x98, 0x22, 0xc1,
- 0x9e, 0x6a, 0x6d, 0xa4, 0x04, 0x7b, 0xc6, 0xaf, 0x61, 0xab, 0xb0, 0x6d, 0x41, 0xdd, 0xdf, 0x2c,
- 0x53, 0x77, 0xce, 0x86, 0x8b, 0x02, 0x17, 0x55, 0xfe, 0xfb, 0x12, 0x34, 0x44, 0x45, 0xf6, 0x8c,
- 0x7b, 0xa9, 0x6d, 0xa8, 0x85, 0x73, 0x44, 0xfc, 0xd0, 0x76, 0x55, 0x88, 0x55, 0x30, 0xff, 0xa1,
- 0x89, 0x63, 0xdb, 0xb9, 0x90, 0x3f, 0x34, 0x35, 0x33, 0x85, 0xd9, 0x1c, 0x7a, 0x15, 0x23, 0xc2,
- 0x42, 0x73, 0x45, 0xcc, 0x29, 0x98, 0xf7, 0x79, 0x26, 0x44, 0x36, 0x64, 0xd8, 0x90, 0x5d, 0xaa,
- 0xe8, 0xc2, 0xf0, 0x12, 0xa7, 0x66, 0x4a, 0x88, 0x79, 0x3e, 0xd9, 0x80, 0xa8, 0x99, 0xe5, 0x79,
- 0xcf, 0xf8, 0x07, 0x5e, 0xc2, 0x0f, 0x9e, 0x8f, 0x9e, 0x29, 0x17, 0xea, 0x86, 0x2f, 0x03, 0x29,
- 0x18, 0x1f, 0xeb, 0x77, 0x01, 0x82, 0xd0, 0x4a, 0x02, 0xfe, 0x2b, 0x20, 0xc5, 0xaa, 0x07, 0xe1,
- 0x0b, 0x81, 0x60, 0x4f, 0x51, 0x99, 0x73, 0xf6, 0xa0, 0x6a, 0x66, 0x53, 0x1a, 0xb4, 0xb0, 0xf9,
- 0x4f, 0xa1, 0x1d, 0x91, 0x30, 0xb2, 0x3d, 0x9b, 0x95, 0xf8, 0x94, 0xda, 0x52, 0xd6, 0x56, 0x8a,
- 0x3d, 0xa1, 0xd4, 0x36, 0x9e, 0x40, 0x7d, 0x48, 0xc7, 0xc4, 0xb4, 0x03, 0x8f, 0x5b, 0xd6, 0x04,
- 0x65, 0x5f, 0xcf, 0x02, 0x60, 0x47, 0x45, 0x81, 0x6a, 0xfd, 0xb0, 0x21, 0xab, 0x5a, 0x34, 0xb6,
- 0xea, 0xc0, 0x8e, 0x44, 0x27, 0x04, 0x23, 0xbe, 0x21, 0x8e, 0xe6, 0xfb, 0x16, 0x4d, 0x22, 0x96,
- 0xaa, 0x21, 0xa5, 0xeb, 0x16, 0xc3, 0x8e, 0x15, 0x52, 0x92, 0xf5, 0x72, 0x64, 0xe5, 0x94, 0xac,
- 0x97, 0x91, 0x3d, 0x82, 0x55, 0xc2, 0x64, 0x52, 0x55, 0xd4, 0x7a, 0xbe, 0xd0, 0x94, 0xf2, 0x9a,
- 0x92, 0xc4, 0xf8, 0x25, 0xab, 0xd7, 0xc7, 0x84, 0xb7, 0xad, 0x9e, 0xfa, 0xa1, 0x73, 0x99, 0x5b,
- 0x5e, 0x7a, 0xf3, 0xf2, 0xbf, 0xaf, 0x40, 0x67, 0x98, 0xd9, 0x1e, 0xaf, 0xda, 0x75, 0xa8, 0x06,
- 0xf6, 0x0c, 0x49, 0x4f, 0xc2, 0xc7, 0xfa, 0x23, 0x15, 0x03, 0x45, 0x11, 0x7d, 0x7b, 0xb1, 0xfe,
- 0xe7, 0x17, 0xaa, 0x42, 0xe3, 0x67, 0xd0, 0x11, 0x97, 0x94, 0xb5, 0xe6, 0x84, 0xdf, 0x13, 0x77,
- 0xa7, 0x9a, 0x73, 0xfa, 0x23, 0xd0, 0x17, 0xe8, 0xac, 0x79, 0x4f, 0x76, 0xc3, 0x3a, 0x05, 0xd2,
- 0xf3, 0x9e, 0xc8, 0x73, 0x31, 0xe5, 0xfd, 0x42, 0x6e, 0x66, 0x4d, 0x96, 0xe7, 0x62, 0xda, 0x27,
- 0xc8, 0xe6, 0xad, 0x65, 0x9e, 0xf0, 0x73, 0x63, 0x6b, 0x9a, 0x12, 0xd2, 0x0f, 0xa0, 0x43, 0x89,
- 0xe5, 0xe4, 0xee, 0x8a, 0x7f, 0x2c, 0x2c, 0x34, 0x30, 0x8a, 0xb7, 0x69, 0xb6, 0x69, 0xf1, 0x76,
- 0x3f, 0x81, 0x16, 0x25, 0x96, 0xed, 0x7b, 0x21, 0xc1, 0xf1, 0xc5, 0x8c, 0x76, 0x6b, 0x7c, 0x8f,
- 0x26, 0x25, 0xfd, 0x14, 0xa7, 0xff, 0x29, 0xb4, 0x29, 0x91, 0x1d, 0xc5, 0x09, 0xbb, 0x87, 0x6e,
- 0x9d, 0x6f, 0xd4, 0x2d, 0x6e, 0x94, 0xdd, 0x13, 0x5b, 0x9f, 0x41, 0xc6, 0xef, 0xab, 0x85, 0x8b,
- 0x18, 0xe2, 0xe0, 0x72, 0xe9, 0x45, 0x2c, 0xd1, 0x6d, 0xf9, 0xed, 0x75, 0x5b, 0x59, 0xae, 0xdb,
- 0x1d, 0xd0, 0x64, 0x43, 0x2c, 0xe3, 0x2a, 0xae, 0xa1, 0x2d, 0xf0, 0x29, 0xdb, 0x2f, 0x60, 0x7d,
- 0x91, 0xd2, 0x4a, 0x5b, 0x92, 0x5a, 0x91, 0xf8, 0xbc, 0xc7, 0x1c, 0x21, 0xf7, 0xa2, 0x96, 0x47,
- 0xc2, 0x24, 0xe2, 0x97, 0xd3, 0x32, 0x81, 0xa3, 0x9e, 0x33, 0x8c, 0xfe, 0x10, 0xd6, 0x5c, 0x51,
- 0xc3, 0x59, 0x31, 0xb2, 0x64, 0x64, 0x10, 0x7f, 0x3f, 0x1d, 0x39, 0x71, 0x86, 0x64, 0xe8, 0xb8,
- 0x0b, 0x80, 0xbd, 0x48, 0x11, 0xd5, 0xc4, 0xb7, 0x03, 0xf6, 0xa2, 0x2c, 0xb2, 0x48, 0x1b, 0xa8,
- 0x17, 0x6c, 0xe0, 0x23, 0xa8, 0x4f, 0xec, 0xc0, 0x7d, 0x89, 0xdd, 0xf8, 0xa2, 0x0b, 0xbc, 0x2e,
- 0xc9, 0x10, 0xfa, 0x63, 0xd8, 0x20, 0x88, 0x22, 0x32, 0xb7, 0x27, 0x3e, 0xb2, 0x32, 0xc2, 0x06,
- 0x27, 0x5c, 0xcf, 0xe6, 0x9e, 0xe6, 0x97, 0x24, 0x81, 0x98, 0x40, 0x6e, 0x6e, 0x49, 0xf3, 0x7e,
- 0x85, 0x2d, 0xc9, 0xe6, 0xb2, 0x25, 0x3b, 0xa0, 0x31, 0x13, 0x72, 0xff, 0xc6, 0x76, 0x50, 0xe0,
- 0x5c, 0x59, 0x14, 0xbb, 0xdd, 0x16, 0x3f, 0x40, 0x9b, 0x92, 0xbe, 0x42, 0x8f, 0xb1, 0xa8, 0xa1,
- 0x89, 0xef, 0xd1, 0x6e, 0x9b, 0x7f, 0x25, 0x09, 0xc0, 0xf8, 0xbb, 0x12, 0xac, 0xe5, 0xac, 0x43,
- 0xb6, 0xc0, 0x1e, 0x03, 0x3b, 0xbe, 0x95, 0x25, 0xa7, 0x8d, 0x62, 0x1f, 0x4c, 0x39, 0x5a, 0xb3,
- 0x86, 0xbd, 0x48, 0xb8, 0xdc, 0x4c, 0x49, 0xe5, 0x82, 0x92, 0x0c, 0x6e, 0xe3, 0xb2, 0x59, 0x47,
- 0xd3, 0x76, 0x7c, 0x83, 0xca, 0x76, 0xdb, 0x18, 0xbb, 0xc6, 0xbf, 0xf2, 0xd8, 0x92, 0xc5, 0xa9,
- 0x2f, 0xa0, 0x9a, 0x6b, 0x09, 0x6e, 0xe5, 0x77, 0x2e, 0x38, 0x14, 0x93, 0x93, 0x31, 0x72, 0x1f,
- 0x07, 0x97, 0xd2, 0x83, 0x2c, 0x27, 0x67, 0x66, 0x6f, 0x72, 0x32, 0xfd, 0x49, 0xe1, 0x17, 0xa9,
- 0xb1, 0x77, 0x67, 0xe9, 0x02, 0xf9, 0x37, 0xaa, 0x3e, 0xc5, 0x4c, 0xd0, 0x64, 0xfa, 0xf0, 0x03,
- 0xd3, 0xf7, 0x25, 0xf5, 0xff, 0x7f, 0x96, 0x61, 0x73, 0x6c, 0xce, 0x7b, 0xe3, 0x98, 0x24, 0x4e,
- 0x9c, 0x10, 0x34, 0x4e, 0x26, 0x22, 0xff, 0xd5, 0x3f, 0x57, 0x8f, 0x8c, 0xbf, 0x78, 0x4b, 0xf6,
- 0x0e, 0xc5, 0x3e, 0x9a, 0x9f, 0x3e, 0xee, 0xa1, 0xe8, 0x22, 0x3e, 0x84, 0xb5, 0xac, 0x91, 0xaa,
- 0x88, 0xc5, 0xfe, 0x9d, 0xb4, 0x67, 0x2a, 0x69, 0x1f, 0x40, 0x67, 0x9a, 0x04, 0xbc, 0x5c, 0xb6,
- 0x0a, 0x2d, 0xc9, 0xb6, 0x42, 0x67, 0x84, 0x36, 0xf1, 0x12, 0x56, 0x04, 0x29, 0x42, 0x91, 0x45,
- 0xb6, 0x15, 0x5a, 0x12, 0x3e, 0x86, 0x0d, 0x9e, 0xc1, 0x46, 0x21, 0x4b, 0x58, 0x33, 0xb6, 0xe2,
- 0x8f, 0x76, 0xbd, 0x30, 0x77, 0xd3, 0x12, 0xf9, 0x7d, 0xb7, 0xba, 0x64, 0xc9, 0xa9, 0xf8, 0xcb,
- 0xfb, 0x14, 0x9a, 0x5c, 0x57, 0x83, 0x43, 0x61, 0x6f, 0xb7, 0x61, 0x95, 0xe9, 0xdb, 0x7a, 0x2c,
- 0x23, 0x22, 0xd7, 0xfe, 0x63, 0xe3, 0x31, 0xdc, 0x62, 0x64, 0x4c, 0x87, 0x9f, 0x41, 0x25, 0xf6,
- 0xe7, 0xaf, 0x4d, 0xd5, 0x18, 0x81, 0xf1, 0x1f, 0x65, 0xb8, 0xcd, 0xd6, 0x0c, 0x82, 0x69, 0x48,
- 0x66, 0xbc, 0x4e, 0x92, 0xb7, 0xa0, 0x41, 0x85, 0xca, 0x4f, 0x9c, 0xa6, 0xc9, 0x86, 0xfa, 0xe7,
- 0xc5, 0x68, 0x95, 0xeb, 0xd4, 0xe6, 0x85, 0x53, 0xa6, 0xf0, 0x08, 0xd6, 0x50, 0xe0, 0x46, 0x21,
- 0x0e, 0x62, 0x6b, 0x82, 0x2e, 0xec, 0x39, 0x96, 0x3d, 0xfd, 0x96, 0xa9, 0xa9, 0x89, 0xa7, 0x12,
- 0xaf, 0x7f, 0x0f, 0x4d, 0x96, 0xe6, 0xf3, 0x54, 0x9f, 0xa5, 0x98, 0x55, 0x2e, 0xf7, 0x97, 0xc5,
- 0x1d, 0xae, 0xc9, 0xb8, 0x2b, 0x6d, 0xc6, 0x9f, 0xd3, 0xa3, 0x20, 0x26, 0x57, 0x26, 0xd0, 0x14,
- 0xb1, 0x3d, 0x82, 0xce, 0xc2, 0xf4, 0x92, 0x02, 0xf0, 0x41, 0x3e, 0xf3, 0x6d, 0xec, 0xad, 0x15,
- 0x37, 0x64, 0xb5, 0x8c, 0x98, 0xff, 0xa6, 0xfc, 0x8b, 0x92, 0xf1, 0x6f, 0x25, 0xd0, 0x18, 0x7a,
- 0xf8, 0x64, 0x8c, 0xc8, 0x1c, 0x3b, 0x88, 0xa9, 0xe9, 0xa9, 0x2c, 0x50, 0xb2, 0xc4, 0xf8, 0x41,
- 0x91, 0x49, 0x9e, 0x7a, 0xb7, 0x20, 0x2d, 0xaf, 0x64, 0x98, 0xa8, 0xc7, 0xd0, 0xfc, 0x31, 0xe5,
- 0xfc, 0x0a, 0xea, 0xd2, 0xbd, 0x0c, 0x0e, 0xdf, 0x3e, 0x69, 0x7f, 0x48, 0xf9, 0x97, 0x92, 0x6c,
- 0xf2, 0xeb, 0xeb, 0xd0, 0x19, 0x8e, 0x2d, 0x06, 0x5a, 0x2f, 0x4e, 0xbe, 0x3b, 0x39, 0xfd, 0xf5,
- 0x89, 0xf6, 0x07, 0xba, 0x06, 0x4d, 0x85, 0x3c, 0x39, 0x3d, 0x3c, 0xd2, 0x4a, 0x79, 0xcc, 0x70,
- 0x70, 0xf2, 0x9d, 0x56, 0xd6, 0x6f, 0xc3, 0x9a, 0xc2, 0x8c, 0xcc, 0xa3, 0x67, 0x83, 0xbf, 0xb0,
- 0xce, 0xf7, 0xb5, 0xca, 0x32, 0x74, 0x4f, 0xab, 0x3e, 0xfc, 0x6f, 0xfe, 0x01, 0x91, 0xf5, 0xf9,
- 0xf5, 0x3f, 0x84, 0xf5, 0xe1, 0xd8, 0x1a, 0x99, 0xa7, 0x67, 0xa7, 0x07, 0xa7, 0xc3, 0xdc, 0xde,
- 0x0b, 0x13, 0x83, 0xf1, 0x60, 0x6c, 0x0d, 0x1f, 0x6b, 0xa5, 0xe5, 0x13, 0x7b, 0x5a, 0x79, 0x71,
- 0xe2, 0x74, 0x3c, 0x7a, 0x66, 0x9d, 0xef, 0x69, 0x15, 0x7d, 0x13, 0xf4, 0xfc, 0xc4, 0xe1, 0xc0,
- 0x3c, 0x3a, 0x38, 0xd3, 0xaa, 0x8b, 0xf8, 0xf1, 0x59, 0xff, 0x6c, 0x70, 0xa0, 0xad, 0x2c, 0x67,
- 0xf4, 0x44, 0x5b, 0x9d, 0xac, 0x72, 0x35, 0x3e, 0xf9, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf2,
- 0x7e, 0x15, 0xda, 0xb9, 0x29, 0x00, 0x00,
+ // 4207 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3a, 0xcb, 0x72, 0x1b, 0x49,
+ 0x72, 0x8b, 0x07, 0x49, 0x30, 0xf1, 0x60, 0xb3, 0xf9, 0x18, 0x90, 0x1a, 0x8d, 0xb4, 0xad, 0x91,
+ 0x44, 0x53, 0x1a, 0xce, 0x8a, 0xe2, 0x60, 0xe7, 0x11, 0x6b, 0x07, 0x44, 0x40, 0x1a, 0x78, 0x40,
+ 0x10, 0xd3, 0x00, 0x39, 0xe3, 0x8b, 0xdb, 0x8d, 0xee, 0x62, 0xb3, 0x96, 0x8d, 0xee, 0xde, 0xae,
+ 0x06, 0x24, 0x5e, 0xec, 0x08, 0x1f, 0x1c, 0xb1, 0xe1, 0x58, 0x87, 0x4f, 0x8e, 0x8d, 0xd8, 0x8b,
+ 0x2f, 0x76, 0x84, 0x1d, 0x3e, 0xdb, 0x07, 0xff, 0x80, 0x7d, 0xf6, 0x07, 0xf8, 0x2b, 0x7c, 0x77,
+ 0xd4, 0xab, 0x1f, 0x20, 0x48, 0x49, 0xa3, 0x99, 0x08, 0xdd, 0x3a, 0xb3, 0xb2, 0xb2, 0xb2, 0xb2,
+ 0xb2, 0xf2, 0x55, 0x0d, 0x2b, 0x66, 0x14, 0x85, 0x78, 0x34, 0x89, 0xd0, 0x5e, 0x10, 0xfa, 0x91,
+ 0xaf, 0x96, 0x1c, 0x7f, 0xe4, 0x04, 0x66, 0x80, 0xb7, 0xb7, 0x1c, 0xdf, 0x77, 0x5c, 0xf4, 0x29,
+ 0xc3, 0x8f, 0x26, 0x67, 0x9f, 0x9a, 0xde, 0x25, 0x27, 0xda, 0x2e, 0x33, 0x22, 0x0e, 0x68, 0x7f,
+ 0x04, 0x2b, 0xc7, 0x21, 0x76, 0xb0, 0xd7, 0x94, 0xac, 0xd4, 0x4d, 0x58, 0xf4, 0x19, 0xaa, 0x9e,
+ 0xbb, 0x9b, 0xdb, 0xa9, 0xea, 0x02, 0xd2, 0xbe, 0x80, 0xe5, 0x26, 0x19, 0x20, 0x67, 0x8c, 0xbc,
+ 0x48, 0x55, 0xa1, 0x18, 0x5d, 0x06, 0x48, 0x90, 0xb0, 0x6f, 0xb5, 0x0e, 0x4b, 0xde, 0x64, 0x3c,
+ 0x42, 0x21, 0xa9, 0xe7, 0xef, 0x16, 0x76, 0xaa, 0xba, 0x04, 0xb5, 0x67, 0xb0, 0xd2, 0x24, 0x7d,
+ 0x33, 0x3a, 0x4f, 0x56, 0xf9, 0x14, 0x4a, 0x84, 0xf3, 0x22, 0xf5, 0xdc, 0xdd, 0xc2, 0x4e, 0x79,
+ 0x7f, 0x6d, 0x4f, 0x4a, 0xbf, 0x17, 0xaf, 0xa3, 0xc7, 0x44, 0xda, 0x27, 0xa0, 0xf4, 0xd0, 0xab,
+ 0xe8, 0x6b, 0x3f, 0x48, 0x98, 0x6c, 0x41, 0xc9, 0x43, 0xaf, 0x22, 0xe3, 0xdc, 0x0f, 0x98, 0x24,
+ 0xcb, 0xfa, 0x92, 0xc7, 0x69, 0xb4, 0x5d, 0xd8, 0x3c, 0x9a, 0xb8, 0x11, 0x6e, 0xbf, 0xc2, 0x51,
+ 0x0b, 0x13, 0x2b, 0x99, 0xa4, 0x40, 0x61, 0x8c, 0x6c, 0x21, 0x39, 0xfd, 0xd4, 0x9e, 0x82, 0xda,
+ 0xf5, 0x2d, 0xd3, 0xed, 0x87, 0xe8, 0x2c, 0xa1, 0xbb, 0x0d, 0xe0, 0x52, 0xac, 0x11, 0x84, 0xe8,
+ 0x4c, 0x90, 0x2f, 0xbb, 0x92, 0x4e, 0xdb, 0x86, 0x7a, 0x33, 0xf2, 0xc7, 0xd8, 0x6a, 0x3a, 0x4e,
+ 0x88, 0x1c, 0x33, 0x42, 0xf1, 0x54, 0xed, 0x4f, 0x60, 0x4d, 0x62, 0xfd, 0x30, 0xe1, 0x58, 0x83,
+ 0xbc, 0x49, 0x75, 0x43, 0x39, 0xe5, 0x4d, 0x42, 0x15, 0x66, 0xda, 0x76, 0x88, 0x08, 0xa9, 0x17,
+ 0xb8, 0xf4, 0x02, 0xd4, 0x3e, 0x87, 0xf5, 0x43, 0x7f, 0x3c, 0x9e, 0x78, 0x38, 0xc2, 0x88, 0x24,
+ 0x1c, 0xee, 0x42, 0xd9, 0x4a, 0xf0, 0x4c, 0x71, 0x55, 0x3d, 0x8d, 0xd2, 0x1e, 0xc2, 0x06, 0x3f,
+ 0x50, 0xba, 0x74, 0xc7, 0xce, 0x2c, 0x8e, 0x6d, 0xa1, 0xa5, 0x3c, 0xb6, 0xb5, 0x1d, 0x58, 0x3f,
+ 0x74, 0x27, 0x24, 0x42, 0x61, 0x17, 0x93, 0x28, 0xa3, 0x1e, 0x6c, 0x73, 0xd6, 0xcb, 0x3a, 0xfd,
+ 0xd4, 0xbe, 0x86, 0x95, 0x4e, 0xbf, 0xc9, 0x25, 0xa3, 0x5b, 0xc7, 0xaf, 0xa8, 0x6e, 0x02, 0xf6,
+ 0x65, 0xb8, 0x48, 0xda, 0xc9, 0x32, 0xc7, 0x74, 0x91, 0x47, 0x4d, 0x88, 0x03, 0x6c, 0xb3, 0xcb,
+ 0xba, 0x80, 0x34, 0x07, 0x36, 0xbb, 0xe6, 0x08, 0xb9, 0xc8, 0x9e, 0x65, 0xb8, 0x09, 0x8b, 0x2e,
+ 0x1d, 0x91, 0x7b, 0x12, 0xd0, 0xcc, 0x42, 0xf9, 0xeb, 0x17, 0x2a, 0x64, 0x16, 0xfa, 0x04, 0x56,
+ 0xdb, 0x9e, 0x65, 0x06, 0x64, 0xe2, 0x9a, 0x11, 0xf6, 0xbd, 0x5e, 0x57, 0xef, 0xa4, 0xd5, 0x9d,
+ 0xcb, 0xaa, 0xbb, 0x0f, 0x1f, 0xea, 0xfe, 0x24, 0x42, 0x2d, 0x4c, 0x22, 0xec, 0x39, 0x13, 0x4c,
+ 0xce, 0x51, 0x38, 0x7c, 0xe9, 0x1f, 0x5b, 0x11, 0x8a, 0x9a, 0x03, 0x75, 0x1d, 0x16, 0x4c, 0x7b,
+ 0x1c, 0xdf, 0x08, 0x0e, 0xa8, 0xdb, 0x50, 0x32, 0x09, 0xc1, 0x8e, 0x87, 0x6c, 0x21, 0x59, 0x0c,
+ 0x6b, 0xc7, 0x70, 0xeb, 0x2a, 0xc7, 0x78, 0xd3, 0x59, 0x86, 0xcb, 0x6f, 0xc2, 0xf0, 0x5b, 0xb8,
+ 0x7d, 0x95, 0xe1, 0x73, 0x7f, 0x12, 0xfe, 0x70, 0x19, 0xdb, 0xb0, 0xd5, 0x8e, 0xce, 0x51, 0xe8,
+ 0xa1, 0x48, 0x5c, 0xb7, 0x8e, 0x8d, 0xbc, 0x08, 0x9f, 0x61, 0x14, 0xce, 0xbd, 0xe0, 0xeb, 0xb0,
+ 0x30, 0x35, 0xdd, 0x09, 0x62, 0x9c, 0x2a, 0x3a, 0x07, 0xb4, 0x7f, 0xcf, 0xc1, 0x47, 0xed, 0xd3,
+ 0x7e, 0x4f, 0xf2, 0x6a, 0x4e, 0x22, 0x9f, 0xde, 0x38, 0x7f, 0x8a, 0xc2, 0x4b, 0x26, 0xb3, 0xfa,
+ 0x31, 0xe4, 0x43, 0x6e, 0x7b, 0xe5, 0xfd, 0xf5, 0x3d, 0xee, 0x9a, 0xf6, 0xa4, 0x6b, 0xda, 0x6b,
+ 0x7a, 0x97, 0x7a, 0x3e, 0xb4, 0xd5, 0xcf, 0xa0, 0x80, 0x08, 0x66, 0xcc, 0xcb, 0xfb, 0xf7, 0x12,
+ 0x6f, 0x70, 0xad, 0x90, 0x3a, 0xa5, 0x57, 0x7f, 0x0e, 0x15, 0x24, 0x28, 0x8c, 0xc8, 0x74, 0x98,
+ 0x25, 0x54, 0xf5, 0xb2, 0xc4, 0x0d, 0x4d, 0x87, 0x0a, 0xce, 0xec, 0xa9, 0x5e, 0xe4, 0xba, 0x61,
+ 0x80, 0xf6, 0x7f, 0x39, 0xb8, 0x45, 0x05, 0x3f, 0x6a, 0x1e, 0xd2, 0x93, 0x99, 0xa2, 0x30, 0xc2,
+ 0x04, 0x31, 0xb7, 0xf3, 0x5e, 0x48, 0x7d, 0x07, 0xca, 0x63, 0xd3, 0x32, 0xa4, 0xcd, 0x16, 0x99,
+ 0xa9, 0xc0, 0xd8, 0xb4, 0xa4, 0x15, 0xdd, 0x06, 0xc0, 0x41, 0x3c, 0xbe, 0xc0, 0xc6, 0x97, 0x71,
+ 0x20, 0x87, 0x93, 0x3b, 0xb5, 0x98, 0xbe, 0x53, 0xda, 0xdf, 0xe7, 0xe0, 0x01, 0xdd, 0x77, 0xc7,
+ 0xb3, 0xdc, 0x09, 0xc1, 0x53, 0xc4, 0x1c, 0xa5, 0x65, 0x92, 0xa8, 0x9d, 0xac, 0xfe, 0x36, 0x2a,
+ 0x98, 0xdd, 0x4b, 0xfe, 0xea, 0x5e, 0xb2, 0xa2, 0x16, 0x66, 0x44, 0xd5, 0xfe, 0x21, 0x07, 0xf5,
+ 0xb4, 0x0d, 0x49, 0xf7, 0xff, 0xd3, 0x9f, 0xc3, 0x6b, 0x04, 0xfb, 0x6d, 0x1e, 0x56, 0x99, 0xae,
+ 0xfa, 0xdc, 0x51, 0xbd, 0x1f, 0x96, 0x71, 0x0b, 0x96, 0x71, 0x60, 0x08, 0xcf, 0xc7, 0xed, 0xa2,
+ 0x84, 0x03, 0xe1, 0x4a, 0x35, 0xa8, 0xc6, 0x83, 0xcc, 0x6b, 0x2e, 0x70, 0x06, 0x92, 0x80, 0xfa,
+ 0xcd, 0xdb, 0x00, 0xce, 0xcb, 0x78, 0xd7, 0x8b, 0x7c, 0xd7, 0xce, 0xcb, 0x94, 0x7b, 0xe2, 0xf7,
+ 0x65, 0x29, 0x7d, 0x5f, 0xfe, 0x0a, 0x6a, 0x5c, 0x15, 0x47, 0x83, 0xce, 0x8f, 0x6c, 0x1e, 0x94,
+ 0x51, 0xc4, 0x76, 0x7a, 0x3d, 0xa3, 0x48, 0xfb, 0x4b, 0xa8, 0x0c, 0xf4, 0xbe, 0xef, 0x62, 0xeb,
+ 0x92, 0x39, 0x74, 0x6a, 0xe0, 0xc8, 0x73, 0xa2, 0x73, 0x99, 0xa9, 0x70, 0x48, 0xfd, 0x18, 0xaa,
+ 0x76, 0xda, 0x4d, 0x8a, 0x15, 0xb3, 0x48, 0xba, 0x49, 0xcb, 0x77, 0xfd, 0x50, 0x28, 0x98, 0x03,
+ 0xd4, 0x61, 0x22, 0xcf, 0x0e, 0x7c, 0xec, 0x45, 0x4c, 0xb3, 0x15, 0x3d, 0x86, 0xe9, 0xc5, 0xd9,
+ 0x12, 0xf1, 0x8b, 0xe9, 0xe1, 0xcd, 0x42, 0x18, 0x57, 0x52, 0xfe, 0x35, 0x4a, 0xca, 0x06, 0xba,
+ 0xc2, 0xf5, 0x81, 0xae, 0x98, 0x09, 0x74, 0xdf, 0xc2, 0x16, 0x3b, 0x8a, 0xa1, 0x19, 0x3a, 0x28,
+ 0x3a, 0x42, 0x2c, 0xdf, 0x3a, 0xc7, 0x01, 0xd3, 0x0f, 0xcf, 0x37, 0x72, 0x71, 0xbe, 0xc1, 0xb5,
+ 0x9c, 0x7f, 0x8d, 0x96, 0x27, 0xa0, 0x3c, 0x77, 0xfd, 0x97, 0x83, 0x00, 0x59, 0xd2, 0xea, 0xe7,
+ 0x46, 0x83, 0x1f, 0x16, 0x9a, 0x59, 0x7a, 0x79, 0x76, 0x46, 0x50, 0x24, 0x9c, 0xb1, 0x80, 0xb4,
+ 0xaf, 0xa0, 0x2c, 0x97, 0x3d, 0x6a, 0x1e, 0x5e, 0x97, 0x60, 0x4a, 0x93, 0xcd, 0x67, 0x03, 0xf8,
+ 0xaf, 0x60, 0x43, 0x4e, 0x3e, 0xf4, 0xc7, 0x81, 0xef, 0xd1, 0x7b, 0x15, 0xa1, 0x31, 0x55, 0x81,
+ 0xc8, 0x0d, 0xab, 0x7a, 0xde, 0x0f, 0xb2, 0x21, 0xac, 0x28, 0x43, 0xd8, 0x9f, 0xc3, 0xea, 0x95,
+ 0xe9, 0x73, 0x25, 0xf8, 0x0c, 0x16, 0x70, 0x84, 0xc6, 0x3c, 0xc1, 0x2d, 0xef, 0xdf, 0x49, 0x2e,
+ 0xf5, 0xdc, 0xe5, 0x75, 0x4e, 0xad, 0x7d, 0x09, 0x15, 0x39, 0xce, 0x0e, 0x66, 0x17, 0x16, 0xc2,
+ 0x89, 0x8b, 0x64, 0xe6, 0x3b, 0xff, 0x2c, 0x38, 0x89, 0x66, 0xc1, 0xca, 0x69, 0xbf, 0x97, 0x99,
+ 0xfe, 0x66, 0xd7, 0x2e, 0x5e, 0x24, 0xff, 0xfa, 0x45, 0x0e, 0x00, 0x8e, 0x03, 0xf3, 0x37, 0x13,
+ 0xc4, 0xf8, 0x2b, 0x50, 0xb8, 0x40, 0x97, 0x6c, 0x81, 0x8a, 0x4e, 0x3f, 0xaf, 0x89, 0xfc, 0xff,
+ 0x9c, 0x03, 0xa5, 0x4b, 0x7a, 0xbe, 0x8d, 0x5a, 0x88, 0x58, 0x21, 0x0e, 0x22, 0x3f, 0xa4, 0x93,
+ 0x4d, 0x22, 0xb3, 0x10, 0xfa, 0xa9, 0x6e, 0xc3, 0xf2, 0xc8, 0x09, 0x0c, 0x97, 0x18, 0x58, 0x26,
+ 0x21, 0x4b, 0x23, 0x27, 0xe8, 0x92, 0x8e, 0xad, 0xde, 0x85, 0x8a, 0x4f, 0x82, 0x33, 0xc3, 0x0c,
+ 0x91, 0x49, 0x87, 0xb9, 0xe1, 0x03, 0xc5, 0x35, 0x43, 0x64, 0x76, 0x6c, 0xf5, 0x23, 0x80, 0x80,
+ 0xa0, 0x89, 0xed, 0x7b, 0xbe, 0x8d, 0x98, 0xcd, 0x94, 0xf4, 0x14, 0x86, 0xb9, 0x3b, 0x27, 0x30,
+ 0x42, 0x7a, 0x0b, 0x42, 0xca, 0x82, 0xc7, 0xc1, 0x32, 0x76, 0x02, 0x76, 0x33, 0xc2, 0x8e, 0xad,
+ 0xfd, 0x3e, 0x4f, 0x05, 0xed, 0x62, 0xef, 0x22, 0x25, 0xa8, 0x06, 0x55, 0x17, 0x7b, 0x17, 0x06,
+ 0x4f, 0xf2, 0xb1, 0xac, 0x08, 0xca, 0x14, 0xc9, 0xca, 0x81, 0x8e, 0xad, 0x7e, 0x0c, 0x35, 0x46,
+ 0x13, 0xa2, 0xb1, 0x1f, 0xa1, 0x44, 0xfe, 0x0a, 0xc5, 0xea, 0x0c, 0xd9, 0xb1, 0xd5, 0x3d, 0x58,
+ 0xc3, 0x5e, 0x84, 0xc2, 0x33, 0xd3, 0x42, 0xcc, 0xa9, 0x1a, 0x38, 0x98, 0x1e, 0x08, 0xbb, 0x5f,
+ 0x8d, 0x87, 0xa8, 0xbb, 0xe8, 0x04, 0xd3, 0x03, 0xf5, 0x31, 0xa8, 0x1e, 0xc2, 0xce, 0xf9, 0xc8,
+ 0x0f, 0x53, 0xe4, 0xfc, 0x62, 0x2b, 0x72, 0x24, 0xa6, 0x9e, 0xcb, 0xbd, 0x21, 0xb6, 0x79, 0x85,
+ 0x7b, 0x63, 0x2e, 0xf7, 0x86, 0xf0, 0xf1, 0xb3, 0xdc, 0x1b, 0x1a, 0x02, 0xb5, 0x2b, 0x3c, 0x58,
+ 0x4a, 0x37, 0x0f, 0x61, 0x05, 0x07, 0x46, 0x88, 0x4c, 0xeb, 0xdc, 0x1c, 0x61, 0x17, 0x47, 0x97,
+ 0xa2, 0x20, 0xa8, 0xe1, 0x40, 0x4f, 0x61, 0xd5, 0x07, 0xb0, 0xc2, 0xce, 0x8f, 0xa9, 0xdf, 0x60,
+ 0xf7, 0x85, 0x5f, 0xcd, 0x2a, 0x45, 0x73, 0xd7, 0x74, 0x19, 0x20, 0xed, 0x05, 0x00, 0xb7, 0x14,
+ 0x66, 0x60, 0x5f, 0xc8, 0xd2, 0x8a, 0x9d, 0x29, 0x37, 0xe4, 0xed, 0xe4, 0x2e, 0xcd, 0xda, 0x94,
+ 0x28, 0xbb, 0x28, 0x52, 0xfb, 0xef, 0x1c, 0xe5, 0x44, 0x8f, 0xf2, 0x1d, 0x39, 0xa9, 0x5f, 0x41,
+ 0x59, 0x1c, 0x2b, 0x9b, 0x9b, 0x7f, 0xed, 0x5c, 0xe0, 0xe4, 0x6c, 0xf2, 0x21, 0xac, 0x30, 0xc3,
+ 0xb0, 0xe3, 0x61, 0x11, 0xbd, 0x32, 0x0c, 0xb2, 0x16, 0xa7, 0x33, 0x5b, 0x4a, 0x60, 0x9a, 0xf5,
+ 0xd4, 0xa4, 0xf2, 0x4f, 0x0f, 0xde, 0x75, 0x3f, 0x1d, 0x58, 0x15, 0xfe, 0x38, 0x25, 0x14, 0xdf,
+ 0xd5, 0x87, 0x69, 0x0e, 0xb3, 0x87, 0xad, 0x2b, 0xc1, 0x0c, 0x26, 0x2b, 0x58, 0xe3, 0x3d, 0x12,
+ 0xec, 0x7f, 0x72, 0x50, 0xe9, 0x12, 0x6a, 0xbc, 0x22, 0x30, 0xed, 0xa4, 0x9c, 0x74, 0x8d, 0xf9,
+ 0xb8, 0x44, 0xa0, 0xae, 0xde, 0xa1, 0xb6, 0x27, 0x5c, 0xf7, 0x0e, 0x14, 0x3d, 0x37, 0xc4, 0x37,
+ 0x86, 0x3f, 0x46, 0x91, 0x4a, 0x2b, 0x0a, 0x99, 0xb4, 0xe2, 0x97, 0x50, 0x66, 0xd4, 0x96, 0xcf,
+ 0xdc, 0x45, 0x91, 0x2d, 0xb9, 0x99, 0xdd, 0x01, 0x1f, 0xee, 0xb4, 0x74, 0x90, 0xa4, 0xdc, 0x85,
+ 0xe1, 0x38, 0xc9, 0x63, 0x17, 0xb7, 0xa8, 0xa7, 0x30, 0xda, 0x6f, 0x73, 0xb0, 0x7e, 0xc4, 0xef,
+ 0x15, 0x15, 0x3a, 0xa9, 0xc5, 0x77, 0x60, 0xf1, 0xcc, 0x1c, 0x63, 0xf7, 0x52, 0x28, 0x5c, 0x49,
+ 0xc5, 0x1b, 0x86, 0xd7, 0xc5, 0x38, 0xcd, 0x08, 0x65, 0x27, 0x84, 0x3b, 0xfc, 0x65, 0xbd, 0x24,
+ 0x5a, 0x21, 0x84, 0x46, 0x02, 0xba, 0x31, 0x9a, 0xde, 0xde, 0x10, 0x09, 0x18, 0x89, 0xe6, 0xc1,
+ 0xe6, 0x51, 0x70, 0xe2, 0x85, 0xef, 0x22, 0xcc, 0xdb, 0xac, 0xf7, 0xbb, 0x1c, 0x6c, 0xc7, 0x95,
+ 0x36, 0xa1, 0x21, 0x0e, 0x9f, 0x61, 0xab, 0xfd, 0x2a, 0x42, 0x9e, 0x8d, 0x6c, 0xf5, 0x1e, 0x54,
+ 0x31, 0x31, 0xa2, 0xd0, 0xf4, 0x08, 0x8e, 0xf0, 0x94, 0x1f, 0x74, 0x49, 0xaf, 0x60, 0x32, 0x8c,
+ 0x71, 0xea, 0x16, 0x94, 0xc8, 0x64, 0x94, 0x78, 0x9f, 0xaa, 0xbe, 0x44, 0x26, 0x23, 0x7a, 0xf6,
+ 0x22, 0x05, 0x2a, 0xc4, 0x29, 0xd0, 0x1d, 0x28, 0x73, 0x33, 0xe6, 0xb5, 0x32, 0x4f, 0x41, 0xb8,
+ 0x65, 0x37, 0x29, 0x46, 0xfb, 0x7d, 0x0e, 0x6e, 0x75, 0xfa, 0xd3, 0x03, 0x91, 0xdb, 0xfd, 0xe8,
+ 0x02, 0x5d, 0xdb, 0xf3, 0x79, 0xbd, 0x68, 0x7f, 0x97, 0x83, 0x5b, 0x49, 0xc5, 0xff, 0x1e, 0xe8,
+ 0x6a, 0x17, 0xd4, 0x53, 0xd3, 0xc5, 0x36, 0x6b, 0xb1, 0xc4, 0x62, 0xac, 0xc3, 0x02, 0x89, 0xcc,
+ 0x48, 0x26, 0x4e, 0x1c, 0xd0, 0xee, 0x43, 0xf5, 0x90, 0x26, 0xd8, 0x69, 0x32, 0x9e, 0x7e, 0xe7,
+ 0x52, 0xe9, 0xb7, 0xf6, 0x0b, 0xa8, 0xb2, 0xc6, 0x4d, 0x4c, 0x76, 0x07, 0xca, 0xd1, 0xc4, 0xf3,
+ 0x90, 0x6b, 0xa4, 0x92, 0x31, 0xe0, 0x28, 0x16, 0x59, 0xea, 0xb0, 0xd9, 0x42, 0x67, 0xe6, 0xc4,
+ 0x8d, 0x5e, 0x98, 0x11, 0x7a, 0x69, 0x5e, 0xca, 0xa9, 0xda, 0x37, 0x50, 0xe3, 0x49, 0xcd, 0xdb,
+ 0x69, 0x28, 0xce, 0x75, 0x0a, 0xe9, 0x5c, 0x47, 0x07, 0xa5, 0x3d, 0xe8, 0xb0, 0xec, 0x3f, 0x66,
+ 0xb7, 0x03, 0x0a, 0x26, 0x06, 0xc1, 0x9e, 0xe3, 0x22, 0xc3, 0xb4, 0x52, 0x1c, 0x6b, 0x98, 0x0c,
+ 0x18, 0xba, 0x69, 0x49, 0x9e, 0xbc, 0xa0, 0xca, 0xa7, 0x0b, 0xaa, 0x7d, 0x58, 0x6b, 0x0f, 0x3a,
+ 0xe3, 0xc0, 0x0f, 0xa3, 0x54, 0x12, 0x4f, 0xef, 0x32, 0x22, 0x06, 0x66, 0x78, 0xd1, 0x20, 0x2a,
+ 0x21, 0xc2, 0xe9, 0xb4, 0x13, 0x58, 0x3b, 0x32, 0xad, 0x23, 0x9f, 0xc7, 0xdf, 0x58, 0x14, 0x5a,
+ 0x11, 0x12, 0x83, 0x44, 0xd8, 0xba, 0xb8, 0x14, 0x32, 0x94, 0x30, 0x19, 0x30, 0x98, 0x16, 0x60,
+ 0x04, 0xfd, 0x66, 0x82, 0x3c, 0x0b, 0x19, 0xde, 0x64, 0x2c, 0x0b, 0x30, 0x89, 0xeb, 0x4d, 0xc6,
+ 0xda, 0x7d, 0x58, 0xe5, 0xd9, 0xd2, 0x91, 0x99, 0x18, 0x94, 0x02, 0x85, 0xb1, 0x69, 0x09, 0x11,
+ 0xe8, 0xa7, 0xf6, 0x05, 0xac, 0x0d, 0x43, 0xf3, 0xec, 0x0c, 0x5b, 0xba, 0x19, 0x25, 0x7a, 0x9d,
+ 0x2d, 0x34, 0x54, 0x28, 0x86, 0xd4, 0x02, 0xe8, 0x42, 0x79, 0x9d, 0x7d, 0x6b, 0xdf, 0xc0, 0x86,
+ 0x98, 0x4a, 0x75, 0x92, 0xb2, 0x97, 0x6d, 0x28, 0x45, 0x28, 0x1c, 0x63, 0xcf, 0x74, 0xa5, 0xe4,
+ 0x12, 0xa6, 0xae, 0x98, 0x98, 0xe3, 0xc0, 0xe5, 0xac, 0x4a, 0xba, 0x80, 0xb4, 0x13, 0xd0, 0x74,
+ 0x64, 0xe3, 0x10, 0x59, 0xd1, 0x0d, 0xce, 0x63, 0x56, 0xac, 0x19, 0x83, 0xce, 0x5f, 0x31, 0xe8,
+ 0xbf, 0x80, 0x7b, 0x92, 0xed, 0x4d, 0x3e, 0xe0, 0xda, 0x46, 0xe2, 0xeb, 0x57, 0x38, 0x4d, 0x56,
+ 0xb8, 0xe9, 0x2a, 0xbf, 0xb5, 0xe4, 0x8f, 0x62, 0xed, 0xea, 0x68, 0x6c, 0x86, 0x17, 0x31, 0x27,
+ 0x15, 0x8a, 0x36, 0xb1, 0x64, 0x09, 0xc4, 0xbe, 0xb5, 0xaf, 0x60, 0xe5, 0xc4, 0xbb, 0xf0, 0xfc,
+ 0x97, 0x5e, 0x9a, 0xec, 0x0d, 0xdb, 0x7d, 0xa7, 0xf0, 0xa1, 0x9c, 0x35, 0xb7, 0x45, 0xdd, 0xb8,
+ 0xda, 0xa2, 0xbe, 0x2e, 0x04, 0x64, 0x1a, 0xd7, 0x87, 0xa0, 0x34, 0xc9, 0xc1, 0x3b, 0x3e, 0x12,
+ 0x3c, 0x83, 0xcd, 0x26, 0x39, 0x78, 0xb7, 0xde, 0x3b, 0x82, 0xb5, 0xfe, 0x98, 0xe0, 0x21, 0x73,
+ 0x31, 0x09, 0x83, 0x75, 0x58, 0x38, 0x73, 0x4d, 0x47, 0x9e, 0x0a, 0x07, 0x62, 0xbd, 0xe5, 0xb3,
+ 0x7a, 0xe3, 0x97, 0xbd, 0x90, 0xba, 0xec, 0xa2, 0xff, 0xce, 0x5b, 0x0a, 0x79, 0x6c, 0x6b, 0x7f,
+ 0x0a, 0x1f, 0xf1, 0x25, 0x98, 0xbf, 0x1b, 0x4c, 0x46, 0xc3, 0xee, 0x69, 0xa6, 0x67, 0x9d, 0x2e,
+ 0xc3, 0xaa, 0xbc, 0x0c, 0xdb, 0x84, 0x45, 0xcb, 0xf7, 0x2f, 0xb0, 0x3c, 0x12, 0x01, 0x69, 0xbf,
+ 0x84, 0xad, 0x2b, 0xbc, 0x64, 0x2e, 0x42, 0xef, 0x97, 0xcc, 0x45, 0x04, 0xaf, 0x18, 0xd6, 0xf6,
+ 0x60, 0xf3, 0xca, 0x44, 0xe6, 0xa6, 0xaf, 0x71, 0xcf, 0x27, 0x70, 0xfb, 0x0a, 0xfd, 0x40, 0xa7,
+ 0xb9, 0x18, 0x0a, 0xa9, 0x2b, 0xb9, 0x46, 0x4b, 0x1f, 0xf1, 0x56, 0x01, 0xa7, 0x91, 0xd6, 0x9b,
+ 0x60, 0xb4, 0x06, 0x54, 0x06, 0xfa, 0x33, 0xec, 0xd9, 0xd8, 0x73, 0x06, 0x9d, 0xd6, 0x35, 0x5c,
+ 0x14, 0x28, 0x10, 0x51, 0x81, 0x55, 0x74, 0xfa, 0xa9, 0xfd, 0x47, 0x0e, 0x36, 0x06, 0xfa, 0xb4,
+ 0xd1, 0xf6, 0xec, 0x3e, 0x6b, 0xd1, 0x3c, 0x43, 0xe7, 0xe6, 0x14, 0xfb, 0xa1, 0xba, 0x0f, 0xa5,
+ 0x91, 0xf8, 0x16, 0xb9, 0x61, 0x2a, 0x51, 0xa3, 0x53, 0x24, 0xa5, 0x1e, 0xd3, 0x51, 0x1f, 0x3a,
+ 0x72, 0x7d, 0xeb, 0x22, 0xd5, 0xcf, 0x28, 0x31, 0x44, 0x17, 0x79, 0xec, 0xa9, 0xc9, 0xb7, 0x51,
+ 0xaa, 0x3b, 0xb3, 0x44, 0x61, 0x31, 0x74, 0x36, 0xf1, 0x2c, 0x36, 0xc4, 0x83, 0xe4, 0x12, 0x85,
+ 0xe9, 0xd0, 0x07, 0xb0, 0x64, 0x86, 0x4e, 0xaa, 0x0b, 0xb7, 0x68, 0x86, 0x4e, 0x17, 0x79, 0xda,
+ 0x7f, 0xe5, 0xa0, 0xc6, 0xc4, 0x48, 0x36, 0xbd, 0x01, 0x8b, 0xc4, 0xa0, 0x3b, 0x15, 0x5e, 0x70,
+ 0x81, 0x3c, 0x77, 0x4d, 0x87, 0xa2, 0x31, 0x47, 0x73, 0x17, 0xb8, 0x80, 0x25, 0x7a, 0xc4, 0xd1,
+ 0x05, 0x8e, 0x1e, 0x31, 0xb4, 0xd0, 0x51, 0x31, 0xd6, 0x91, 0x6a, 0xc0, 0x2d, 0xd9, 0xc0, 0x32,
+ 0xe4, 0x56, 0x0d, 0x12, 0x85, 0x13, 0x2b, 0x9a, 0x84, 0x88, 0x89, 0x95, 0x69, 0x64, 0xcc, 0xd5,
+ 0xa7, 0xbe, 0x25, 0x79, 0x48, 0xcc, 0x40, 0x72, 0xd0, 0x0e, 0xe1, 0x83, 0x39, 0x36, 0xd1, 0xee,
+ 0x75, 0xfb, 0xd7, 0xdf, 0x19, 0xe4, 0xb9, 0x81, 0xbc, 0x33, 0xf4, 0x5b, 0xfb, 0x1c, 0x4a, 0x03,
+ 0xfd, 0x3b, 0x5a, 0x9c, 0x46, 0xd7, 0xcc, 0xda, 0x84, 0xc5, 0x97, 0x08, 0xd3, 0xac, 0x9c, 0xcf,
+ 0x13, 0x90, 0xf6, 0x6b, 0xa8, 0x08, 0x3f, 0xf0, 0x9c, 0xd1, 0x6d, 0xc0, 0xe2, 0x34, 0xa3, 0xc6,
+ 0xa9, 0xd4, 0x97, 0x99, 0x51, 0xa3, 0x29, 0xd1, 0x24, 0xa3, 0x46, 0x32, 0xa3, 0xdd, 0x62, 0x4a,
+ 0xbb, 0x9a, 0x1e, 0xaf, 0x45, 0x53, 0x8f, 0xa6, 0xfa, 0x38, 0x2d, 0x69, 0x39, 0x63, 0x62, 0x29,
+ 0x91, 0xe4, 0x0e, 0xe6, 0x27, 0x01, 0x17, 0x50, 0x16, 0xc4, 0x5d, 0x4c, 0x22, 0x75, 0x97, 0x6f,
+ 0xf3, 0x3c, 0x12, 0x3c, 0xd5, 0xf4, 0xc9, 0x70, 0x05, 0xe9, 0x82, 0x42, 0xfd, 0x45, 0xca, 0x3d,
+ 0xde, 0xd4, 0xe4, 0x49, 0xfc, 0xe3, 0xff, 0xe6, 0xe7, 0x78, 0x0a, 0xd9, 0x53, 0x55, 0x5f, 0x64,
+ 0xae, 0x29, 0x5f, 0xff, 0x61, 0xb2, 0xfe, 0x8d, 0x37, 0x3f, 0x7d, 0x9f, 0x69, 0xad, 0x35, 0x92,
+ 0x57, 0xf5, 0xda, 0x5a, 0x8b, 0x52, 0x50, 0x5b, 0xf0, 0xcc, 0x31, 0x12, 0x3e, 0x98, 0x7d, 0xab,
+ 0x7b, 0xb0, 0x66, 0x99, 0x9e, 0x4d, 0xf3, 0x4a, 0x64, 0x04, 0x66, 0x74, 0x6e, 0x30, 0x12, 0xde,
+ 0x1f, 0x59, 0x8d, 0x87, 0x68, 0xa8, 0xe8, 0x51, 0x7a, 0xe6, 0xe0, 0xb0, 0x1f, 0xe2, 0xe8, 0x52,
+ 0xdc, 0xb2, 0x18, 0x56, 0x3f, 0x13, 0xb6, 0xb6, 0xc8, 0x24, 0xf9, 0xf9, 0x8d, 0x9b, 0xa1, 0x26,
+ 0xcb, 0xcd, 0x51, 0xfd, 0x9c, 0x66, 0x4c, 0x4c, 0x67, 0x86, 0x8b, 0x49, 0x54, 0x5f, 0x62, 0xda,
+ 0xdd, 0xb8, 0x72, 0xbe, 0xf4, 0xc8, 0x68, 0x22, 0x15, 0x03, 0x5a, 0x0b, 0xea, 0x57, 0x58, 0x8b,
+ 0x60, 0xfb, 0x16, 0x41, 0xb6, 0x07, 0xb5, 0x14, 0x97, 0x61, 0xf7, 0x74, 0xee, 0x5c, 0x5a, 0xfc,
+ 0xba, 0xd3, 0x9b, 0xcf, 0x9e, 0x51, 0x68, 0x2d, 0x58, 0x4f, 0xf1, 0x4b, 0x82, 0xda, 0x63, 0xc1,
+ 0x81, 0x07, 0xd7, 0xfa, 0x5c, 0xf5, 0x0c, 0xbb, 0xa7, 0x82, 0x8b, 0xa8, 0x8d, 0x1a, 0xef, 0x61,
+ 0x6d, 0x94, 0xcd, 0xdc, 0x1a, 0x3f, 0x41, 0xe6, 0xf6, 0x67, 0x70, 0xa7, 0xd3, 0x6f, 0xfc, 0x24,
+ 0xa9, 0xcf, 0x2e, 0x28, 0x4d, 0xec, 0x50, 0x45, 0x77, 0x5e, 0xf4, 0x8f, 0x50, 0x14, 0x62, 0x8b,
+ 0xba, 0xbb, 0x31, 0xfb, 0x62, 0x82, 0x16, 0x75, 0x01, 0x69, 0x5f, 0x42, 0x4d, 0xd0, 0xbe, 0xbd,
+ 0x55, 0x7d, 0x01, 0x55, 0x3a, 0x37, 0x5d, 0xd2, 0xa7, 0x8f, 0xff, 0x26, 0x03, 0x9a, 0x40, 0xad,
+ 0x4b, 0xab, 0x13, 0xb9, 0x6f, 0x56, 0x54, 0x38, 0xae, 0x3f, 0x8a, 0x35, 0x26, 0xba, 0xa7, 0x1c,
+ 0xc7, 0x54, 0x96, 0xe8, 0xd4, 0x36, 0x23, 0xf3, 0x49, 0x46, 0xa7, 0x2d, 0x8a, 0xc9, 0x12, 0xec,
+ 0xcb, 0xe6, 0x6f, 0x4c, 0xb0, 0xaf, 0x7d, 0x07, 0x5b, 0x99, 0x65, 0x33, 0xea, 0xfe, 0x72, 0x9e,
+ 0xba, 0x53, 0x36, 0x9c, 0x15, 0x38, 0xab, 0xf2, 0x3f, 0xe4, 0xa0, 0xcc, 0x7b, 0x56, 0x3c, 0x6a,
+ 0x6c, 0x43, 0xc9, 0x9f, 0xa2, 0xd0, 0xf5, 0x4d, 0x5b, 0x16, 0x21, 0x12, 0x66, 0x6f, 0xe8, 0x51,
+ 0x64, 0x5a, 0xe7, 0xe2, 0x0d, 0xbd, 0xa4, 0xc7, 0x30, 0x7b, 0x2e, 0x7a, 0x15, 0xa1, 0x90, 0x16,
+ 0x2f, 0x3c, 0x82, 0xc4, 0x30, 0xeb, 0x84, 0x8f, 0x42, 0x11, 0x41, 0xe8, 0x27, 0x3d, 0x54, 0xde,
+ 0xa7, 0x66, 0x7e, 0xaa, 0xa4, 0x0b, 0x88, 0xe6, 0x86, 0xa2, 0x45, 0x5b, 0xd2, 0xf3, 0xd3, 0x86,
+ 0xf6, 0xb7, 0xac, 0xc9, 0xd9, 0x79, 0xd1, 0x7f, 0x2e, 0x03, 0xa6, 0xed, 0xbf, 0xf4, 0x84, 0x60,
+ 0xec, 0x5b, 0xbd, 0x0d, 0xe0, 0xf9, 0xc6, 0xc4, 0x63, 0xef, 0xb6, 0x42, 0xac, 0x65, 0xcf, 0x3f,
+ 0xe1, 0x08, 0x7a, 0x15, 0xa5, 0x39, 0x27, 0x17, 0xaa, 0xa4, 0x57, 0x84, 0x41, 0x73, 0x9b, 0xbf,
+ 0x0f, 0xb5, 0x20, 0xf4, 0x03, 0xd3, 0xa1, 0x8e, 0xd6, 0x23, 0xc4, 0x14, 0xb2, 0x56, 0x63, 0x6c,
+ 0x8f, 0x10, 0x53, 0x7b, 0x0a, 0xcb, 0x5d, 0x32, 0x08, 0x75, 0xd3, 0x73, 0x98, 0x65, 0x8d, 0x50,
+ 0xf2, 0x73, 0x10, 0x07, 0xe8, 0x56, 0x91, 0x27, 0x9b, 0xe3, 0xf4, 0x53, 0xfb, 0x1d, 0x7b, 0x1b,
+ 0x18, 0x84, 0x87, 0x66, 0xc0, 0x7b, 0xc5, 0x18, 0xb1, 0x05, 0x71, 0x30, 0x3d, 0x30, 0xc8, 0x24,
+ 0xa0, 0xc5, 0x2c, 0x92, 0xba, 0xae, 0x52, 0xec, 0x40, 0x22, 0x05, 0x59, 0x23, 0x45, 0x96, 0x8f,
+ 0xc9, 0x1a, 0x09, 0xd9, 0x23, 0x58, 0x0c, 0xa9, 0x4c, 0xb2, 0xcf, 0xb4, 0x96, 0x6e, 0xc5, 0x09,
+ 0x79, 0x75, 0x41, 0xa2, 0xfd, 0x0a, 0x6a, 0x14, 0xc9, 0x1a, 0xfb, 0xcf, 0x68, 0x52, 0x97, 0x9a,
+ 0x9e, 0x7b, 0xfd, 0xf4, 0xbf, 0x29, 0xc0, 0x4a, 0x37, 0xb1, 0x3d, 0xd6, 0xd7, 0x94, 0xb1, 0x2b,
+ 0x97, 0x8a, 0x5d, 0x8f, 0x64, 0x46, 0xc0, 0x43, 0xdf, 0xc6, 0x6c, 0x87, 0x34, 0x93, 0x10, 0x3c,
+ 0x80, 0x15, 0x7e, 0x48, 0xc9, 0xe3, 0x05, 0xf7, 0x7b, 0xfc, 0xec, 0xe4, 0xf3, 0x85, 0xfa, 0x08,
+ 0xd4, 0x19, 0x3a, 0x63, 0xda, 0x10, 0xf1, 0x70, 0x25, 0x43, 0x7a, 0xda, 0xe0, 0x9d, 0x00, 0x4c,
+ 0xd8, 0x8b, 0x0a, 0x33, 0xb3, 0x8a, 0x5e, 0xa2, 0x88, 0x66, 0x88, 0x4c, 0xf6, 0xf8, 0xc6, 0x5a,
+ 0x22, 0xcc, 0xd8, 0x2a, 0xba, 0x80, 0xd4, 0x43, 0x58, 0x21, 0xa1, 0x61, 0xa5, 0xce, 0x8a, 0x3d,
+ 0xfd, 0xce, 0xb4, 0x78, 0xb3, 0xa7, 0xa9, 0xd7, 0x48, 0xf6, 0x74, 0xef, 0x41, 0x95, 0x84, 0x86,
+ 0xe9, 0x3a, 0x34, 0xf4, 0x9e, 0x8f, 0x49, 0xbd, 0xc4, 0xd6, 0xa8, 0x90, 0xb0, 0x19, 0xe3, 0xd4,
+ 0x3f, 0x86, 0x1a, 0x09, 0xc5, 0x9b, 0x0b, 0x4b, 0xae, 0xeb, 0xcb, 0x6c, 0xa1, 0x7a, 0x76, 0xa1,
+ 0xe4, 0x9c, 0xe8, 0xfc, 0x04, 0xd2, 0xfe, 0x50, 0xcc, 0x1c, 0x44, 0x17, 0x7b, 0x17, 0x73, 0x0f,
+ 0x62, 0x8e, 0x6e, 0xf3, 0x6f, 0xae, 0xdb, 0xc2, 0x7c, 0xdd, 0xee, 0x80, 0x22, 0x9e, 0x0c, 0x12,
+ 0xae, 0xfc, 0x18, 0x6a, 0x1c, 0x1f, 0xb3, 0xfd, 0x04, 0xd6, 0x66, 0x29, 0x8d, 0xf8, 0xd1, 0x46,
+ 0xc9, 0x12, 0x9f, 0x36, 0xa8, 0x23, 0x64, 0x5e, 0xd4, 0x70, 0x42, 0x7f, 0xc2, 0xb3, 0x95, 0xaa,
+ 0x0e, 0x0c, 0xf5, 0x82, 0x62, 0xd4, 0x5d, 0x58, 0xb5, 0x79, 0x97, 0xcb, 0x88, 0x90, 0x21, 0x22,
+ 0x03, 0x7f, 0x9d, 0x5f, 0x11, 0x03, 0x43, 0x24, 0x42, 0xc7, 0x6d, 0x00, 0xec, 0x04, 0x92, 0xa8,
+ 0xc4, 0x1f, 0x66, 0xb1, 0x13, 0x24, 0x91, 0x45, 0xd8, 0xc0, 0x72, 0xc6, 0x06, 0x3e, 0x84, 0xe5,
+ 0x91, 0xe9, 0xd9, 0x2f, 0xb1, 0x1d, 0x9d, 0xd7, 0x81, 0x75, 0x6e, 0x12, 0x84, 0xfa, 0x04, 0xd6,
+ 0x43, 0x44, 0x50, 0x38, 0x35, 0x47, 0x2e, 0x32, 0x12, 0xc2, 0x32, 0x23, 0x5c, 0x4b, 0xc6, 0x9e,
+ 0xa5, 0xa7, 0x4c, 0x3c, 0x3e, 0x80, 0xec, 0xd4, 0x94, 0xca, 0xdd, 0x02, 0x9d, 0x92, 0x8c, 0x25,
+ 0x53, 0x76, 0x40, 0xa1, 0x26, 0x64, 0xff, 0xda, 0xb4, 0x90, 0x67, 0x5d, 0x1a, 0x34, 0x89, 0xac,
+ 0xb2, 0x0d, 0xd4, 0x48, 0xd8, 0x94, 0xe8, 0x01, 0xe6, 0x5d, 0xc6, 0xd0, 0x75, 0x48, 0xbd, 0xc6,
+ 0x1e, 0xdb, 0x39, 0xa0, 0xfd, 0x75, 0x0e, 0x56, 0x53, 0xd6, 0x21, 0x1e, 0x09, 0x9e, 0x00, 0xdd,
+ 0xbe, 0x91, 0x4e, 0xd5, 0x33, 0x2f, 0x05, 0xd2, 0xd1, 0xea, 0x25, 0xec, 0x04, 0xcf, 0x65, 0xb5,
+ 0x21, 0x94, 0x94, 0xcf, 0x28, 0x49, 0x63, 0x36, 0x2e, 0x9e, 0x33, 0x48, 0xfc, 0x60, 0x59, 0x26,
+ 0xe2, 0x41, 0x62, 0x80, 0x6d, 0xed, 0x1f, 0x59, 0x6c, 0x49, 0xe2, 0xd4, 0x27, 0x50, 0x4c, 0x3d,
+ 0x9a, 0x6c, 0xa5, 0x57, 0xce, 0x38, 0x14, 0x9d, 0x91, 0x51, 0x72, 0x17, 0x7b, 0x17, 0xc2, 0x83,
+ 0xcc, 0x27, 0xa7, 0x66, 0xaf, 0x33, 0x32, 0xf5, 0x69, 0xe6, 0x9d, 0xbd, 0xbc, 0x7f, 0x6b, 0xee,
+ 0x04, 0xf1, 0xf7, 0x8a, 0xfc, 0x6d, 0x40, 0x07, 0x45, 0xa4, 0x0f, 0x3f, 0xb0, 0xc1, 0x31, 0xa7,
+ 0x43, 0xfa, 0xaf, 0x79, 0xd8, 0xa4, 0xc5, 0x63, 0x5c, 0x19, 0x0e, 0x26, 0x23, 0x9e, 0xff, 0xaa,
+ 0x8f, 0xe5, 0x25, 0x8b, 0xeb, 0xeb, 0xe4, 0xa7, 0x0d, 0xc5, 0x8d, 0x2f, 0x77, 0x97, 0xbf, 0xb3,
+ 0xec, 0xc2, 0x6a, 0xf2, 0xd4, 0x24, 0x89, 0xf9, 0xfa, 0x2b, 0xf1, 0xab, 0x92, 0xa0, 0x7d, 0x08,
+ 0x2b, 0xb4, 0xd6, 0x8e, 0xb0, 0xef, 0x19, 0x99, 0x47, 0x9b, 0x9a, 0x44, 0x27, 0x84, 0x66, 0xe8,
+ 0x4c, 0x78, 0x4a, 0xcf, 0x09, 0x79, 0x16, 0x59, 0x93, 0x68, 0x41, 0xf8, 0x04, 0xd6, 0x59, 0x06,
+ 0x1b, 0xf8, 0x34, 0x61, 0x4d, 0xd8, 0xf2, 0xca, 0x62, 0x2d, 0x33, 0x76, 0xdd, 0x14, 0xf1, 0x83,
+ 0xc3, 0xe2, 0x9c, 0x29, 0xc7, 0xfc, 0x6f, 0x87, 0xfb, 0x50, 0x61, 0xba, 0xea, 0xb4, 0xe2, 0xaa,
+ 0x95, 0xea, 0xdb, 0x78, 0x22, 0xab, 0x56, 0x0a, 0x3d, 0xd1, 0x9e, 0xc0, 0x12, 0x25, 0xa3, 0x3a,
+ 0x7c, 0x00, 0x85, 0xc8, 0x9d, 0xde, 0x98, 0xaa, 0x51, 0x02, 0xed, 0x5f, 0xf2, 0xbc, 0x27, 0xd2,
+ 0xf1, 0xce, 0xfc, 0x70, 0xcc, 0x3a, 0x49, 0xe2, 0x14, 0x44, 0x6f, 0x20, 0x97, 0xf4, 0x06, 0x1e,
+ 0x67, 0xa3, 0xd5, 0x4c, 0x8b, 0x44, 0x0a, 0x27, 0x4d, 0xe1, 0x11, 0xac, 0x5e, 0xe9, 0x24, 0x08,
+ 0x6d, 0x2b, 0xb3, 0xed, 0x01, 0xf5, 0x5b, 0xa8, 0xd0, 0x34, 0x9f, 0xa5, 0xfa, 0x34, 0xc5, 0x2c,
+ 0x32, 0xb9, 0x3f, 0xcd, 0xae, 0x70, 0x45, 0xc6, 0x3d, 0x61, 0x33, 0xee, 0x94, 0xb4, 0xbd, 0x28,
+ 0xbc, 0xd4, 0x81, 0xc4, 0x88, 0xed, 0x3e, 0xac, 0xcc, 0x0c, 0xcf, 0x69, 0x91, 0x3d, 0x4c, 0x67,
+ 0xbe, 0xe5, 0xfd, 0xd5, 0xec, 0x82, 0xb4, 0x96, 0xe1, 0xe3, 0x5f, 0xe6, 0x3f, 0xcf, 0x69, 0xff,
+ 0x94, 0x03, 0x85, 0xa2, 0xbb, 0x4f, 0x07, 0x28, 0x9c, 0x62, 0x0b, 0x51, 0x35, 0x3d, 0x13, 0x05,
+ 0x4a, 0x92, 0x18, 0x3f, 0xcc, 0x32, 0x49, 0x53, 0xef, 0x65, 0xa4, 0x65, 0x95, 0x0c, 0x15, 0xf5,
+ 0x08, 0x2a, 0x3f, 0xa6, 0x9c, 0x9f, 0xc1, 0xb2, 0x70, 0x2f, 0x9d, 0xd6, 0x9b, 0x27, 0xed, 0xbb,
+ 0x84, 0x3d, 0xba, 0x8b, 0x67, 0x50, 0x75, 0x0d, 0x56, 0xba, 0x03, 0x83, 0x82, 0xc6, 0x49, 0xef,
+ 0x9b, 0xde, 0xf1, 0x77, 0x3d, 0xe5, 0x67, 0xaa, 0x02, 0x15, 0x89, 0xec, 0x1d, 0xb7, 0xda, 0x4a,
+ 0x2e, 0x8d, 0xe9, 0x76, 0x7a, 0xdf, 0x28, 0x79, 0x75, 0x03, 0x56, 0x25, 0xa6, 0xaf, 0xb7, 0x9f,
+ 0x77, 0xbe, 0x37, 0x4e, 0x0f, 0x94, 0xc2, 0x3c, 0x74, 0x43, 0x29, 0xee, 0xfe, 0x27, 0x7b, 0xa2,
+ 0x4d, 0x5e, 0x42, 0xd5, 0x0f, 0x60, 0xad, 0x3b, 0x30, 0xfa, 0xfa, 0xf1, 0xf0, 0xf8, 0xf0, 0xb8,
+ 0x9b, 0x5a, 0x7b, 0x66, 0xa0, 0x33, 0xe8, 0x0c, 0x8c, 0xee, 0x13, 0x25, 0x37, 0x7f, 0x60, 0x5f,
+ 0xc9, 0xcf, 0x0e, 0x1c, 0x0f, 0xfa, 0xcf, 0x8d, 0xd3, 0x7d, 0xa5, 0xa0, 0x6e, 0x82, 0x9a, 0x1e,
+ 0x68, 0x75, 0xf4, 0xf6, 0xe1, 0x50, 0x29, 0xce, 0xe2, 0x07, 0xc3, 0xe6, 0xb0, 0x73, 0xa8, 0x2c,
+ 0xcc, 0x67, 0xf4, 0x54, 0x59, 0xdc, 0xfd, 0xb7, 0x05, 0x7e, 0x31, 0x63, 0x3b, 0xae, 0x40, 0x49,
+ 0x6f, 0x0f, 0xda, 0xfa, 0x69, 0xbb, 0xa5, 0xfc, 0x4c, 0x5d, 0x82, 0x42, 0xbb, 0xd7, 0xe2, 0x5a,
+ 0x6a, 0xf7, 0x5a, 0xc6, 0x77, 0x9d, 0xe1, 0xd7, 0x46, 0x7f, 0xd0, 0x57, 0xf2, 0x19, 0xcc, 0xc9,
+ 0xa0, 0xaf, 0x14, 0xd4, 0x75, 0x50, 0xd2, 0x34, 0x0c, 0x5b, 0x54, 0x4b, 0x50, 0x6c, 0xf7, 0x5a,
+ 0xdf, 0x2b, 0x0b, 0xea, 0x2a, 0x54, 0xe9, 0x57, 0xc2, 0x64, 0x31, 0x8b, 0xa2, 0xf4, 0x4b, 0x54,
+ 0xcd, 0x19, 0x2a, 0x86, 0x2e, 0x09, 0x36, 0x43, 0x65, 0x59, 0xcc, 0x19, 0x26, 0x6c, 0x20, 0x8b,
+ 0xa2, 0xf4, 0x65, 0xc1, 0x66, 0x98, 0x65, 0x53, 0x11, 0x94, 0xc6, 0xb3, 0x86, 0xd1, 0xee, 0x1d,
+ 0x36, 0xfb, 0x03, 0xa5, 0xa6, 0x02, 0x2c, 0x32, 0xd4, 0x91, 0xb2, 0xa2, 0x96, 0x61, 0x89, 0x7e,
+ 0xb7, 0xbe, 0x6f, 0x28, 0x4a, 0x02, 0x1c, 0x28, 0xab, 0x31, 0x30, 0x6c, 0x28, 0x6a, 0x02, 0x1c,
+ 0x28, 0x6b, 0x54, 0x63, 0x02, 0x68, 0x28, 0xeb, 0xc9, 0xa4, 0x7d, 0x65, 0x23, 0x1e, 0xfa, 0x7e,
+ 0xff, 0x54, 0xd9, 0x4c, 0x08, 0xf7, 0x4f, 0x94, 0x0f, 0x52, 0xd0, 0x91, 0x52, 0x17, 0xe2, 0x26,
+ 0x72, 0x19, 0x3a, 0xb2, 0x95, 0x5b, 0x33, 0x4a, 0x6e, 0x29, 0x1f, 0xce, 0x51, 0x72, 0x4b, 0xb9,
+ 0x9d, 0xc1, 0x9e, 0x08, 0xec, 0x47, 0x6a, 0x1d, 0xd6, 0x67, 0x0f, 0x84, 0x8d, 0xdc, 0x99, 0xd5,
+ 0x7b, 0x4b, 0xb9, 0x3b, 0x4f, 0xef, 0x2d, 0xe5, 0xe7, 0x59, 0xb4, 0x64, 0xa0, 0xa9, 0x5b, 0xb0,
+ 0x71, 0xe5, 0x94, 0xd8, 0xd0, 0xbd, 0xd9, 0xc3, 0x68, 0x29, 0x1f, 0xcf, 0x3b, 0x8c, 0x96, 0x72,
+ 0x3f, 0x8b, 0x96, 0x0c, 0x1e, 0x08, 0xde, 0xc3, 0xab, 0xbc, 0x1f, 0x8e, 0x16, 0xd9, 0xad, 0x7f,
+ 0xfa, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7e, 0x99, 0x10, 0xcc, 0x0a, 0x32, 0x00, 0x00,
}
diff --git a/api/attribute.proto b/api/attribute.proto
index f5680420..090060ea 100644
--- a/api/attribute.proto
+++ b/api/attribute.proto
@@ -176,6 +176,26 @@ message EVPNIPMSIRoute {
google.protobuf.Any rt = 3;
}
+// SRPolicyNLRI represents the NLRI for:
+// - AFI=1, SAFI=73
+// - AFI=2, SAFI=73
+message SRPolicyNLRI {
+ // length field carries the length of NLRI portion expressed in bits
+ uint32 length = 1;
+ // distinguisher field carries 4-octet value uniquely identifying the policy
+ // in the context of <color, endpoint> tuple.
+ uint32 distinguisher = 2;
+ // color field carries 4-octet value identifying (with the endpoint) the
+ // policy. The color is used to match the color of the destination
+ // prefixes to steer traffic into the SR Policy
+ uint32 color = 3;
+ // endpoint field identifies the endpoint of a policy. The Endpoint may
+ // represent a single node or a set of nodes (e.g., an anycast
+ // address). The Endpoint is an IPv4 (4-octet) address or an IPv6
+ // (16-octet) address according to the AFI of the NLRI.
+ bytes endpoint = 4;
+}
+
// LabeledVPNIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=128
// - AFI=2, SAFI=128
@@ -353,6 +373,7 @@ message MpReachNLRIAttribute {
// - VPNFlowSpecNLRI
// - OpaqueNLRI
// - LsAddrPrefix
+ // - SR Policy NLRI
repeated google.protobuf.Any nlris = 3;
}
@@ -484,6 +505,114 @@ message TunnelEncapSubTLVProtocol { uint32 protocol = 1; }
message TunnelEncapSubTLVColor { uint32 color = 1; }
+message TunnelEncapSubTLVSRPreference {
+ uint32 flags = 1;
+ uint32 preference = 2;
+}
+
+message SRBindingSID {
+ uint32 flags = 1;
+ bytes sid = 2;
+}
+
+enum SRv6Behavior {
+ RESERVED = 0;
+ END = 1;
+ END_WITH_PSP = 2;
+ END_WITH_USP = 3;
+ END_WITH_PSP_USP = 4;
+ ENDX = 5;
+ ENDX_WITH_PSP = 6;
+ ENDX_WITH_USP = 7;
+ ENDX_WITH_PSP_USP = 8;
+ ENDT = 9;
+ ENDT_WITH_PSP = 10;
+ ENDT_WITH_USP = 11;
+ ENDT_WITH_PSP_USP = 12;
+ END_B6_ENCAPS = 14;
+ END_BM = 15;
+ END_DX6 = 16;
+ END_DX4 = 17;
+ END_DT6 = 18;
+ END_DT4 = 19;
+ END_DT46 = 20;
+ END_DX2 = 21;
+ END_DX2V = 22;
+ END_DT2U = 23;
+ END_DT2M = 24;
+ END_B6_ENCAPS_Red = 27;
+ END_WITH_USD = 28;
+ END_WITH_PSP_USD = 29;
+ END_WITH_USP_USD = 30;
+ END_WITH_PSP_USP_USD = 31;
+ ENDX_WITH_USD = 32;
+ ENDX_WITH_PSP_USD = 33;
+ ENDX_WITH_USP_USD = 34;
+ ENDX_WITH_PSP_USP_USD = 35;
+ ENDT_WITH_USD = 36;
+ ENDT_WITH_PSP_USD = 37;
+ ENDT_WITH_USP_USD = 38;
+ ENDT_WITH_PSP_USP_USD = 39;
+}
+
+message SRv6EndPpointBehavior {
+ SRv6Behavior behavior = 1;
+ uint32 block_len = 2;
+ uint32 node_len = 3;
+ uint32 func_len = 4;
+ uint32 arg_len = 5;
+}
+
+message SRv6BindingSID {
+ bool s_flag = 1;
+ bool i_flag = 2;
+ bool b_flag = 3;
+ bytes sid = 4;
+ SRv6EndPpointBehavior endpoint_behavior_structure = 5;
+}
+
+message TunnelEncapSubTLVSRENLP {
+ uint32 flags = 1;
+ uint32 enlp = 2;
+}
+
+message SRWeight {
+ uint32 flags = 1;
+ uint32 weigth = 2;
+}
+
+message SegmentFlags {
+ bool v_flag = 1;
+ bool a_flag = 2;
+ bool s_flag = 3;
+ bool b_flag = 4;
+}
+
+message SegmentTypeA {
+ SegmentFlags flags = 1;
+ uint32 label = 2;
+}
+
+message SegmentList {
+ SRWeight weight = 1;
+ // segments must be one of:
+ // - SegmentTypeA
+ repeated google.protobuf.Any segments = 2;
+}
+
+message TunnelEncapSubTLVSRPolicy {
+ TunnelEncapSubTLVSRPreference preference = 1;
+ // bsid must be one of:
+ // - SRBindingSID
+ // - SRv6BindingSID
+ google.protobuf.Any bsid = 2;
+ string name = 3;
+ string candidate_path_name = 4;
+ uint32 priority = 5;
+ TunnelEncapSubTLVSRENLP enlp = 6;
+ repeated SegmentList segment_list = 7;
+}
+
message TunnelEncapSubTLVUnknown {
uint32 type = 1;
bytes value = 2;
@@ -495,6 +624,7 @@ message TunnelEncapTLV {
// - TunnelEncapSubTLVEncapsulation
// - TunnelEncapSubTLVProtocol
// - TunnelEncapSubTLVColor
+ // - TunnelEncapSubTLVSRPolicy
// - TunnelEncapSubTLVUnknown
repeated google.protobuf.Any tlvs = 2;
}