github.com/authzed/spicedb@v1.32.1-0.20240520085336-ebda56537386/pkg/proto/core/v1/core_vtproto.pb.go (about)

     1  // Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
     2  // protoc-gen-go-vtproto version: v0.5.1-0.20231212170721-e7d721933795
     3  // source: core/v1/core.proto
     4  
     5  package corev1
     6  
     7  import (
     8  	fmt "fmt"
     9  	protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
    10  	anypb1 "github.com/planetscale/vtprotobuf/types/known/anypb"
    11  	structpb1 "github.com/planetscale/vtprotobuf/types/known/structpb"
    12  	proto "google.golang.org/protobuf/proto"
    13  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    14  	anypb "google.golang.org/protobuf/types/known/anypb"
    15  	structpb "google.golang.org/protobuf/types/known/structpb"
    16  	io "io"
    17  )
    18  
    19  const (
    20  	// Verify that this generated code is sufficiently up-to-date.
    21  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    22  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    23  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    24  )
    25  
    26  func (m *RelationTuple) CloneVT() *RelationTuple {
    27  	if m == nil {
    28  		return (*RelationTuple)(nil)
    29  	}
    30  	r := new(RelationTuple)
    31  	r.ResourceAndRelation = m.ResourceAndRelation.CloneVT()
    32  	r.Subject = m.Subject.CloneVT()
    33  	r.Caveat = m.Caveat.CloneVT()
    34  	if len(m.unknownFields) > 0 {
    35  		r.unknownFields = make([]byte, len(m.unknownFields))
    36  		copy(r.unknownFields, m.unknownFields)
    37  	}
    38  	return r
    39  }
    40  
    41  func (m *RelationTuple) CloneMessageVT() proto.Message {
    42  	return m.CloneVT()
    43  }
    44  
    45  func (m *ContextualizedCaveat) CloneVT() *ContextualizedCaveat {
    46  	if m == nil {
    47  		return (*ContextualizedCaveat)(nil)
    48  	}
    49  	r := new(ContextualizedCaveat)
    50  	r.CaveatName = m.CaveatName
    51  	r.Context = (*structpb.Struct)((*structpb1.Struct)(m.Context).CloneVT())
    52  	if len(m.unknownFields) > 0 {
    53  		r.unknownFields = make([]byte, len(m.unknownFields))
    54  		copy(r.unknownFields, m.unknownFields)
    55  	}
    56  	return r
    57  }
    58  
    59  func (m *ContextualizedCaveat) CloneMessageVT() proto.Message {
    60  	return m.CloneVT()
    61  }
    62  
    63  func (m *CaveatDefinition) CloneVT() *CaveatDefinition {
    64  	if m == nil {
    65  		return (*CaveatDefinition)(nil)
    66  	}
    67  	r := new(CaveatDefinition)
    68  	r.Name = m.Name
    69  	r.Metadata = m.Metadata.CloneVT()
    70  	r.SourcePosition = m.SourcePosition.CloneVT()
    71  	if rhs := m.SerializedExpression; rhs != nil {
    72  		tmpBytes := make([]byte, len(rhs))
    73  		copy(tmpBytes, rhs)
    74  		r.SerializedExpression = tmpBytes
    75  	}
    76  	if rhs := m.ParameterTypes; rhs != nil {
    77  		tmpContainer := make(map[string]*CaveatTypeReference, len(rhs))
    78  		for k, v := range rhs {
    79  			tmpContainer[k] = v.CloneVT()
    80  		}
    81  		r.ParameterTypes = tmpContainer
    82  	}
    83  	if len(m.unknownFields) > 0 {
    84  		r.unknownFields = make([]byte, len(m.unknownFields))
    85  		copy(r.unknownFields, m.unknownFields)
    86  	}
    87  	return r
    88  }
    89  
    90  func (m *CaveatDefinition) CloneMessageVT() proto.Message {
    91  	return m.CloneVT()
    92  }
    93  
    94  func (m *CaveatTypeReference) CloneVT() *CaveatTypeReference {
    95  	if m == nil {
    96  		return (*CaveatTypeReference)(nil)
    97  	}
    98  	r := new(CaveatTypeReference)
    99  	r.TypeName = m.TypeName
   100  	if rhs := m.ChildTypes; rhs != nil {
   101  		tmpContainer := make([]*CaveatTypeReference, len(rhs))
   102  		for k, v := range rhs {
   103  			tmpContainer[k] = v.CloneVT()
   104  		}
   105  		r.ChildTypes = tmpContainer
   106  	}
   107  	if len(m.unknownFields) > 0 {
   108  		r.unknownFields = make([]byte, len(m.unknownFields))
   109  		copy(r.unknownFields, m.unknownFields)
   110  	}
   111  	return r
   112  }
   113  
   114  func (m *CaveatTypeReference) CloneMessageVT() proto.Message {
   115  	return m.CloneVT()
   116  }
   117  
   118  func (m *ObjectAndRelation) CloneVT() *ObjectAndRelation {
   119  	if m == nil {
   120  		return (*ObjectAndRelation)(nil)
   121  	}
   122  	r := new(ObjectAndRelation)
   123  	r.Namespace = m.Namespace
   124  	r.ObjectId = m.ObjectId
   125  	r.Relation = m.Relation
   126  	if len(m.unknownFields) > 0 {
   127  		r.unknownFields = make([]byte, len(m.unknownFields))
   128  		copy(r.unknownFields, m.unknownFields)
   129  	}
   130  	return r
   131  }
   132  
   133  func (m *ObjectAndRelation) CloneMessageVT() proto.Message {
   134  	return m.CloneVT()
   135  }
   136  
   137  func (m *RelationReference) CloneVT() *RelationReference {
   138  	if m == nil {
   139  		return (*RelationReference)(nil)
   140  	}
   141  	r := new(RelationReference)
   142  	r.Namespace = m.Namespace
   143  	r.Relation = m.Relation
   144  	if len(m.unknownFields) > 0 {
   145  		r.unknownFields = make([]byte, len(m.unknownFields))
   146  		copy(r.unknownFields, m.unknownFields)
   147  	}
   148  	return r
   149  }
   150  
   151  func (m *RelationReference) CloneMessageVT() proto.Message {
   152  	return m.CloneVT()
   153  }
   154  
   155  func (m *Zookie) CloneVT() *Zookie {
   156  	if m == nil {
   157  		return (*Zookie)(nil)
   158  	}
   159  	r := new(Zookie)
   160  	r.Token = m.Token
   161  	if len(m.unknownFields) > 0 {
   162  		r.unknownFields = make([]byte, len(m.unknownFields))
   163  		copy(r.unknownFields, m.unknownFields)
   164  	}
   165  	return r
   166  }
   167  
   168  func (m *Zookie) CloneMessageVT() proto.Message {
   169  	return m.CloneVT()
   170  }
   171  
   172  func (m *RelationTupleUpdate) CloneVT() *RelationTupleUpdate {
   173  	if m == nil {
   174  		return (*RelationTupleUpdate)(nil)
   175  	}
   176  	r := new(RelationTupleUpdate)
   177  	r.Operation = m.Operation
   178  	r.Tuple = m.Tuple.CloneVT()
   179  	if len(m.unknownFields) > 0 {
   180  		r.unknownFields = make([]byte, len(m.unknownFields))
   181  		copy(r.unknownFields, m.unknownFields)
   182  	}
   183  	return r
   184  }
   185  
   186  func (m *RelationTupleUpdate) CloneMessageVT() proto.Message {
   187  	return m.CloneVT()
   188  }
   189  
   190  func (m *RelationTupleTreeNode) CloneVT() *RelationTupleTreeNode {
   191  	if m == nil {
   192  		return (*RelationTupleTreeNode)(nil)
   193  	}
   194  	r := new(RelationTupleTreeNode)
   195  	r.Expanded = m.Expanded.CloneVT()
   196  	r.CaveatExpression = m.CaveatExpression.CloneVT()
   197  	if m.NodeType != nil {
   198  		r.NodeType = m.NodeType.(interface {
   199  			CloneVT() isRelationTupleTreeNode_NodeType
   200  		}).CloneVT()
   201  	}
   202  	if len(m.unknownFields) > 0 {
   203  		r.unknownFields = make([]byte, len(m.unknownFields))
   204  		copy(r.unknownFields, m.unknownFields)
   205  	}
   206  	return r
   207  }
   208  
   209  func (m *RelationTupleTreeNode) CloneMessageVT() proto.Message {
   210  	return m.CloneVT()
   211  }
   212  
   213  func (m *RelationTupleTreeNode_IntermediateNode) CloneVT() isRelationTupleTreeNode_NodeType {
   214  	if m == nil {
   215  		return (*RelationTupleTreeNode_IntermediateNode)(nil)
   216  	}
   217  	r := new(RelationTupleTreeNode_IntermediateNode)
   218  	r.IntermediateNode = m.IntermediateNode.CloneVT()
   219  	return r
   220  }
   221  
   222  func (m *RelationTupleTreeNode_LeafNode) CloneVT() isRelationTupleTreeNode_NodeType {
   223  	if m == nil {
   224  		return (*RelationTupleTreeNode_LeafNode)(nil)
   225  	}
   226  	r := new(RelationTupleTreeNode_LeafNode)
   227  	r.LeafNode = m.LeafNode.CloneVT()
   228  	return r
   229  }
   230  
   231  func (m *SetOperationUserset) CloneVT() *SetOperationUserset {
   232  	if m == nil {
   233  		return (*SetOperationUserset)(nil)
   234  	}
   235  	r := new(SetOperationUserset)
   236  	r.Operation = m.Operation
   237  	if rhs := m.ChildNodes; rhs != nil {
   238  		tmpContainer := make([]*RelationTupleTreeNode, len(rhs))
   239  		for k, v := range rhs {
   240  			tmpContainer[k] = v.CloneVT()
   241  		}
   242  		r.ChildNodes = tmpContainer
   243  	}
   244  	if len(m.unknownFields) > 0 {
   245  		r.unknownFields = make([]byte, len(m.unknownFields))
   246  		copy(r.unknownFields, m.unknownFields)
   247  	}
   248  	return r
   249  }
   250  
   251  func (m *SetOperationUserset) CloneMessageVT() proto.Message {
   252  	return m.CloneVT()
   253  }
   254  
   255  func (m *DirectSubject) CloneVT() *DirectSubject {
   256  	if m == nil {
   257  		return (*DirectSubject)(nil)
   258  	}
   259  	r := new(DirectSubject)
   260  	r.Subject = m.Subject.CloneVT()
   261  	r.CaveatExpression = m.CaveatExpression.CloneVT()
   262  	if len(m.unknownFields) > 0 {
   263  		r.unknownFields = make([]byte, len(m.unknownFields))
   264  		copy(r.unknownFields, m.unknownFields)
   265  	}
   266  	return r
   267  }
   268  
   269  func (m *DirectSubject) CloneMessageVT() proto.Message {
   270  	return m.CloneVT()
   271  }
   272  
   273  func (m *DirectSubjects) CloneVT() *DirectSubjects {
   274  	if m == nil {
   275  		return (*DirectSubjects)(nil)
   276  	}
   277  	r := new(DirectSubjects)
   278  	if rhs := m.Subjects; rhs != nil {
   279  		tmpContainer := make([]*DirectSubject, len(rhs))
   280  		for k, v := range rhs {
   281  			tmpContainer[k] = v.CloneVT()
   282  		}
   283  		r.Subjects = tmpContainer
   284  	}
   285  	if len(m.unknownFields) > 0 {
   286  		r.unknownFields = make([]byte, len(m.unknownFields))
   287  		copy(r.unknownFields, m.unknownFields)
   288  	}
   289  	return r
   290  }
   291  
   292  func (m *DirectSubjects) CloneMessageVT() proto.Message {
   293  	return m.CloneVT()
   294  }
   295  
   296  func (m *Metadata) CloneVT() *Metadata {
   297  	if m == nil {
   298  		return (*Metadata)(nil)
   299  	}
   300  	r := new(Metadata)
   301  	if rhs := m.MetadataMessage; rhs != nil {
   302  		tmpContainer := make([]*anypb.Any, len(rhs))
   303  		for k, v := range rhs {
   304  			tmpContainer[k] = (*anypb.Any)((*anypb1.Any)(v).CloneVT())
   305  		}
   306  		r.MetadataMessage = tmpContainer
   307  	}
   308  	if len(m.unknownFields) > 0 {
   309  		r.unknownFields = make([]byte, len(m.unknownFields))
   310  		copy(r.unknownFields, m.unknownFields)
   311  	}
   312  	return r
   313  }
   314  
   315  func (m *Metadata) CloneMessageVT() proto.Message {
   316  	return m.CloneVT()
   317  }
   318  
   319  func (m *NamespaceDefinition) CloneVT() *NamespaceDefinition {
   320  	if m == nil {
   321  		return (*NamespaceDefinition)(nil)
   322  	}
   323  	r := new(NamespaceDefinition)
   324  	r.Name = m.Name
   325  	r.Metadata = m.Metadata.CloneVT()
   326  	r.SourcePosition = m.SourcePosition.CloneVT()
   327  	if rhs := m.Relation; rhs != nil {
   328  		tmpContainer := make([]*Relation, len(rhs))
   329  		for k, v := range rhs {
   330  			tmpContainer[k] = v.CloneVT()
   331  		}
   332  		r.Relation = tmpContainer
   333  	}
   334  	if len(m.unknownFields) > 0 {
   335  		r.unknownFields = make([]byte, len(m.unknownFields))
   336  		copy(r.unknownFields, m.unknownFields)
   337  	}
   338  	return r
   339  }
   340  
   341  func (m *NamespaceDefinition) CloneMessageVT() proto.Message {
   342  	return m.CloneVT()
   343  }
   344  
   345  func (m *Relation) CloneVT() *Relation {
   346  	if m == nil {
   347  		return (*Relation)(nil)
   348  	}
   349  	r := new(Relation)
   350  	r.Name = m.Name
   351  	r.UsersetRewrite = m.UsersetRewrite.CloneVT()
   352  	r.TypeInformation = m.TypeInformation.CloneVT()
   353  	r.Metadata = m.Metadata.CloneVT()
   354  	r.SourcePosition = m.SourcePosition.CloneVT()
   355  	r.AliasingRelation = m.AliasingRelation
   356  	r.CanonicalCacheKey = m.CanonicalCacheKey
   357  	if len(m.unknownFields) > 0 {
   358  		r.unknownFields = make([]byte, len(m.unknownFields))
   359  		copy(r.unknownFields, m.unknownFields)
   360  	}
   361  	return r
   362  }
   363  
   364  func (m *Relation) CloneMessageVT() proto.Message {
   365  	return m.CloneVT()
   366  }
   367  
   368  func (m *ReachabilityGraph) CloneVT() *ReachabilityGraph {
   369  	if m == nil {
   370  		return (*ReachabilityGraph)(nil)
   371  	}
   372  	r := new(ReachabilityGraph)
   373  	if rhs := m.EntrypointsBySubjectType; rhs != nil {
   374  		tmpContainer := make(map[string]*ReachabilityEntrypoints, len(rhs))
   375  		for k, v := range rhs {
   376  			tmpContainer[k] = v.CloneVT()
   377  		}
   378  		r.EntrypointsBySubjectType = tmpContainer
   379  	}
   380  	if rhs := m.EntrypointsBySubjectRelation; rhs != nil {
   381  		tmpContainer := make(map[string]*ReachabilityEntrypoints, len(rhs))
   382  		for k, v := range rhs {
   383  			tmpContainer[k] = v.CloneVT()
   384  		}
   385  		r.EntrypointsBySubjectRelation = tmpContainer
   386  	}
   387  	if len(m.unknownFields) > 0 {
   388  		r.unknownFields = make([]byte, len(m.unknownFields))
   389  		copy(r.unknownFields, m.unknownFields)
   390  	}
   391  	return r
   392  }
   393  
   394  func (m *ReachabilityGraph) CloneMessageVT() proto.Message {
   395  	return m.CloneVT()
   396  }
   397  
   398  func (m *ReachabilityEntrypoints) CloneVT() *ReachabilityEntrypoints {
   399  	if m == nil {
   400  		return (*ReachabilityEntrypoints)(nil)
   401  	}
   402  	r := new(ReachabilityEntrypoints)
   403  	r.SubjectType = m.SubjectType
   404  	r.SubjectRelation = m.SubjectRelation.CloneVT()
   405  	if rhs := m.Entrypoints; rhs != nil {
   406  		tmpContainer := make([]*ReachabilityEntrypoint, len(rhs))
   407  		for k, v := range rhs {
   408  			tmpContainer[k] = v.CloneVT()
   409  		}
   410  		r.Entrypoints = tmpContainer
   411  	}
   412  	if len(m.unknownFields) > 0 {
   413  		r.unknownFields = make([]byte, len(m.unknownFields))
   414  		copy(r.unknownFields, m.unknownFields)
   415  	}
   416  	return r
   417  }
   418  
   419  func (m *ReachabilityEntrypoints) CloneMessageVT() proto.Message {
   420  	return m.CloneVT()
   421  }
   422  
   423  func (m *ReachabilityEntrypoint) CloneVT() *ReachabilityEntrypoint {
   424  	if m == nil {
   425  		return (*ReachabilityEntrypoint)(nil)
   426  	}
   427  	r := new(ReachabilityEntrypoint)
   428  	r.Kind = m.Kind
   429  	r.TargetRelation = m.TargetRelation.CloneVT()
   430  	r.ResultStatus = m.ResultStatus
   431  	r.TuplesetRelation = m.TuplesetRelation
   432  	if len(m.unknownFields) > 0 {
   433  		r.unknownFields = make([]byte, len(m.unknownFields))
   434  		copy(r.unknownFields, m.unknownFields)
   435  	}
   436  	return r
   437  }
   438  
   439  func (m *ReachabilityEntrypoint) CloneMessageVT() proto.Message {
   440  	return m.CloneVT()
   441  }
   442  
   443  func (m *TypeInformation) CloneVT() *TypeInformation {
   444  	if m == nil {
   445  		return (*TypeInformation)(nil)
   446  	}
   447  	r := new(TypeInformation)
   448  	if rhs := m.AllowedDirectRelations; rhs != nil {
   449  		tmpContainer := make([]*AllowedRelation, len(rhs))
   450  		for k, v := range rhs {
   451  			tmpContainer[k] = v.CloneVT()
   452  		}
   453  		r.AllowedDirectRelations = tmpContainer
   454  	}
   455  	if len(m.unknownFields) > 0 {
   456  		r.unknownFields = make([]byte, len(m.unknownFields))
   457  		copy(r.unknownFields, m.unknownFields)
   458  	}
   459  	return r
   460  }
   461  
   462  func (m *TypeInformation) CloneMessageVT() proto.Message {
   463  	return m.CloneVT()
   464  }
   465  
   466  func (m *AllowedRelation_PublicWildcard) CloneVT() *AllowedRelation_PublicWildcard {
   467  	if m == nil {
   468  		return (*AllowedRelation_PublicWildcard)(nil)
   469  	}
   470  	r := new(AllowedRelation_PublicWildcard)
   471  	if len(m.unknownFields) > 0 {
   472  		r.unknownFields = make([]byte, len(m.unknownFields))
   473  		copy(r.unknownFields, m.unknownFields)
   474  	}
   475  	return r
   476  }
   477  
   478  func (m *AllowedRelation_PublicWildcard) CloneMessageVT() proto.Message {
   479  	return m.CloneVT()
   480  }
   481  
   482  func (m *AllowedRelation) CloneVT() *AllowedRelation {
   483  	if m == nil {
   484  		return (*AllowedRelation)(nil)
   485  	}
   486  	r := new(AllowedRelation)
   487  	r.Namespace = m.Namespace
   488  	r.SourcePosition = m.SourcePosition.CloneVT()
   489  	r.RequiredCaveat = m.RequiredCaveat.CloneVT()
   490  	if m.RelationOrWildcard != nil {
   491  		r.RelationOrWildcard = m.RelationOrWildcard.(interface {
   492  			CloneVT() isAllowedRelation_RelationOrWildcard
   493  		}).CloneVT()
   494  	}
   495  	if len(m.unknownFields) > 0 {
   496  		r.unknownFields = make([]byte, len(m.unknownFields))
   497  		copy(r.unknownFields, m.unknownFields)
   498  	}
   499  	return r
   500  }
   501  
   502  func (m *AllowedRelation) CloneMessageVT() proto.Message {
   503  	return m.CloneVT()
   504  }
   505  
   506  func (m *AllowedRelation_Relation) CloneVT() isAllowedRelation_RelationOrWildcard {
   507  	if m == nil {
   508  		return (*AllowedRelation_Relation)(nil)
   509  	}
   510  	r := new(AllowedRelation_Relation)
   511  	r.Relation = m.Relation
   512  	return r
   513  }
   514  
   515  func (m *AllowedRelation_PublicWildcard_) CloneVT() isAllowedRelation_RelationOrWildcard {
   516  	if m == nil {
   517  		return (*AllowedRelation_PublicWildcard_)(nil)
   518  	}
   519  	r := new(AllowedRelation_PublicWildcard_)
   520  	r.PublicWildcard = m.PublicWildcard.CloneVT()
   521  	return r
   522  }
   523  
   524  func (m *AllowedCaveat) CloneVT() *AllowedCaveat {
   525  	if m == nil {
   526  		return (*AllowedCaveat)(nil)
   527  	}
   528  	r := new(AllowedCaveat)
   529  	r.CaveatName = m.CaveatName
   530  	if len(m.unknownFields) > 0 {
   531  		r.unknownFields = make([]byte, len(m.unknownFields))
   532  		copy(r.unknownFields, m.unknownFields)
   533  	}
   534  	return r
   535  }
   536  
   537  func (m *AllowedCaveat) CloneMessageVT() proto.Message {
   538  	return m.CloneVT()
   539  }
   540  
   541  func (m *UsersetRewrite) CloneVT() *UsersetRewrite {
   542  	if m == nil {
   543  		return (*UsersetRewrite)(nil)
   544  	}
   545  	r := new(UsersetRewrite)
   546  	r.SourcePosition = m.SourcePosition.CloneVT()
   547  	if m.RewriteOperation != nil {
   548  		r.RewriteOperation = m.RewriteOperation.(interface {
   549  			CloneVT() isUsersetRewrite_RewriteOperation
   550  		}).CloneVT()
   551  	}
   552  	if len(m.unknownFields) > 0 {
   553  		r.unknownFields = make([]byte, len(m.unknownFields))
   554  		copy(r.unknownFields, m.unknownFields)
   555  	}
   556  	return r
   557  }
   558  
   559  func (m *UsersetRewrite) CloneMessageVT() proto.Message {
   560  	return m.CloneVT()
   561  }
   562  
   563  func (m *UsersetRewrite_Union) CloneVT() isUsersetRewrite_RewriteOperation {
   564  	if m == nil {
   565  		return (*UsersetRewrite_Union)(nil)
   566  	}
   567  	r := new(UsersetRewrite_Union)
   568  	r.Union = m.Union.CloneVT()
   569  	return r
   570  }
   571  
   572  func (m *UsersetRewrite_Intersection) CloneVT() isUsersetRewrite_RewriteOperation {
   573  	if m == nil {
   574  		return (*UsersetRewrite_Intersection)(nil)
   575  	}
   576  	r := new(UsersetRewrite_Intersection)
   577  	r.Intersection = m.Intersection.CloneVT()
   578  	return r
   579  }
   580  
   581  func (m *UsersetRewrite_Exclusion) CloneVT() isUsersetRewrite_RewriteOperation {
   582  	if m == nil {
   583  		return (*UsersetRewrite_Exclusion)(nil)
   584  	}
   585  	r := new(UsersetRewrite_Exclusion)
   586  	r.Exclusion = m.Exclusion.CloneVT()
   587  	return r
   588  }
   589  
   590  func (m *SetOperation_Child_This) CloneVT() *SetOperation_Child_This {
   591  	if m == nil {
   592  		return (*SetOperation_Child_This)(nil)
   593  	}
   594  	r := new(SetOperation_Child_This)
   595  	if len(m.unknownFields) > 0 {
   596  		r.unknownFields = make([]byte, len(m.unknownFields))
   597  		copy(r.unknownFields, m.unknownFields)
   598  	}
   599  	return r
   600  }
   601  
   602  func (m *SetOperation_Child_This) CloneMessageVT() proto.Message {
   603  	return m.CloneVT()
   604  }
   605  
   606  func (m *SetOperation_Child_Nil) CloneVT() *SetOperation_Child_Nil {
   607  	if m == nil {
   608  		return (*SetOperation_Child_Nil)(nil)
   609  	}
   610  	r := new(SetOperation_Child_Nil)
   611  	if len(m.unknownFields) > 0 {
   612  		r.unknownFields = make([]byte, len(m.unknownFields))
   613  		copy(r.unknownFields, m.unknownFields)
   614  	}
   615  	return r
   616  }
   617  
   618  func (m *SetOperation_Child_Nil) CloneMessageVT() proto.Message {
   619  	return m.CloneVT()
   620  }
   621  
   622  func (m *SetOperation_Child) CloneVT() *SetOperation_Child {
   623  	if m == nil {
   624  		return (*SetOperation_Child)(nil)
   625  	}
   626  	r := new(SetOperation_Child)
   627  	r.SourcePosition = m.SourcePosition.CloneVT()
   628  	if m.ChildType != nil {
   629  		r.ChildType = m.ChildType.(interface {
   630  			CloneVT() isSetOperation_Child_ChildType
   631  		}).CloneVT()
   632  	}
   633  	if rhs := m.OperationPath; rhs != nil {
   634  		tmpContainer := make([]uint32, len(rhs))
   635  		copy(tmpContainer, rhs)
   636  		r.OperationPath = tmpContainer
   637  	}
   638  	if len(m.unknownFields) > 0 {
   639  		r.unknownFields = make([]byte, len(m.unknownFields))
   640  		copy(r.unknownFields, m.unknownFields)
   641  	}
   642  	return r
   643  }
   644  
   645  func (m *SetOperation_Child) CloneMessageVT() proto.Message {
   646  	return m.CloneVT()
   647  }
   648  
   649  func (m *SetOperation_Child_XThis) CloneVT() isSetOperation_Child_ChildType {
   650  	if m == nil {
   651  		return (*SetOperation_Child_XThis)(nil)
   652  	}
   653  	r := new(SetOperation_Child_XThis)
   654  	r.XThis = m.XThis.CloneVT()
   655  	return r
   656  }
   657  
   658  func (m *SetOperation_Child_ComputedUserset) CloneVT() isSetOperation_Child_ChildType {
   659  	if m == nil {
   660  		return (*SetOperation_Child_ComputedUserset)(nil)
   661  	}
   662  	r := new(SetOperation_Child_ComputedUserset)
   663  	r.ComputedUserset = m.ComputedUserset.CloneVT()
   664  	return r
   665  }
   666  
   667  func (m *SetOperation_Child_TupleToUserset) CloneVT() isSetOperation_Child_ChildType {
   668  	if m == nil {
   669  		return (*SetOperation_Child_TupleToUserset)(nil)
   670  	}
   671  	r := new(SetOperation_Child_TupleToUserset)
   672  	r.TupleToUserset = m.TupleToUserset.CloneVT()
   673  	return r
   674  }
   675  
   676  func (m *SetOperation_Child_UsersetRewrite) CloneVT() isSetOperation_Child_ChildType {
   677  	if m == nil {
   678  		return (*SetOperation_Child_UsersetRewrite)(nil)
   679  	}
   680  	r := new(SetOperation_Child_UsersetRewrite)
   681  	r.UsersetRewrite = m.UsersetRewrite.CloneVT()
   682  	return r
   683  }
   684  
   685  func (m *SetOperation_Child_XNil) CloneVT() isSetOperation_Child_ChildType {
   686  	if m == nil {
   687  		return (*SetOperation_Child_XNil)(nil)
   688  	}
   689  	r := new(SetOperation_Child_XNil)
   690  	r.XNil = m.XNil.CloneVT()
   691  	return r
   692  }
   693  
   694  func (m *SetOperation) CloneVT() *SetOperation {
   695  	if m == nil {
   696  		return (*SetOperation)(nil)
   697  	}
   698  	r := new(SetOperation)
   699  	if rhs := m.Child; rhs != nil {
   700  		tmpContainer := make([]*SetOperation_Child, len(rhs))
   701  		for k, v := range rhs {
   702  			tmpContainer[k] = v.CloneVT()
   703  		}
   704  		r.Child = tmpContainer
   705  	}
   706  	if len(m.unknownFields) > 0 {
   707  		r.unknownFields = make([]byte, len(m.unknownFields))
   708  		copy(r.unknownFields, m.unknownFields)
   709  	}
   710  	return r
   711  }
   712  
   713  func (m *SetOperation) CloneMessageVT() proto.Message {
   714  	return m.CloneVT()
   715  }
   716  
   717  func (m *TupleToUserset_Tupleset) CloneVT() *TupleToUserset_Tupleset {
   718  	if m == nil {
   719  		return (*TupleToUserset_Tupleset)(nil)
   720  	}
   721  	r := new(TupleToUserset_Tupleset)
   722  	r.Relation = m.Relation
   723  	if len(m.unknownFields) > 0 {
   724  		r.unknownFields = make([]byte, len(m.unknownFields))
   725  		copy(r.unknownFields, m.unknownFields)
   726  	}
   727  	return r
   728  }
   729  
   730  func (m *TupleToUserset_Tupleset) CloneMessageVT() proto.Message {
   731  	return m.CloneVT()
   732  }
   733  
   734  func (m *TupleToUserset) CloneVT() *TupleToUserset {
   735  	if m == nil {
   736  		return (*TupleToUserset)(nil)
   737  	}
   738  	r := new(TupleToUserset)
   739  	r.Tupleset = m.Tupleset.CloneVT()
   740  	r.ComputedUserset = m.ComputedUserset.CloneVT()
   741  	r.SourcePosition = m.SourcePosition.CloneVT()
   742  	if len(m.unknownFields) > 0 {
   743  		r.unknownFields = make([]byte, len(m.unknownFields))
   744  		copy(r.unknownFields, m.unknownFields)
   745  	}
   746  	return r
   747  }
   748  
   749  func (m *TupleToUserset) CloneMessageVT() proto.Message {
   750  	return m.CloneVT()
   751  }
   752  
   753  func (m *ComputedUserset) CloneVT() *ComputedUserset {
   754  	if m == nil {
   755  		return (*ComputedUserset)(nil)
   756  	}
   757  	r := new(ComputedUserset)
   758  	r.Object = m.Object
   759  	r.Relation = m.Relation
   760  	r.SourcePosition = m.SourcePosition.CloneVT()
   761  	if len(m.unknownFields) > 0 {
   762  		r.unknownFields = make([]byte, len(m.unknownFields))
   763  		copy(r.unknownFields, m.unknownFields)
   764  	}
   765  	return r
   766  }
   767  
   768  func (m *ComputedUserset) CloneMessageVT() proto.Message {
   769  	return m.CloneVT()
   770  }
   771  
   772  func (m *SourcePosition) CloneVT() *SourcePosition {
   773  	if m == nil {
   774  		return (*SourcePosition)(nil)
   775  	}
   776  	r := new(SourcePosition)
   777  	r.ZeroIndexedLineNumber = m.ZeroIndexedLineNumber
   778  	r.ZeroIndexedColumnPosition = m.ZeroIndexedColumnPosition
   779  	if len(m.unknownFields) > 0 {
   780  		r.unknownFields = make([]byte, len(m.unknownFields))
   781  		copy(r.unknownFields, m.unknownFields)
   782  	}
   783  	return r
   784  }
   785  
   786  func (m *SourcePosition) CloneMessageVT() proto.Message {
   787  	return m.CloneVT()
   788  }
   789  
   790  func (m *CaveatExpression) CloneVT() *CaveatExpression {
   791  	if m == nil {
   792  		return (*CaveatExpression)(nil)
   793  	}
   794  	r := new(CaveatExpression)
   795  	if m.OperationOrCaveat != nil {
   796  		r.OperationOrCaveat = m.OperationOrCaveat.(interface {
   797  			CloneVT() isCaveatExpression_OperationOrCaveat
   798  		}).CloneVT()
   799  	}
   800  	if len(m.unknownFields) > 0 {
   801  		r.unknownFields = make([]byte, len(m.unknownFields))
   802  		copy(r.unknownFields, m.unknownFields)
   803  	}
   804  	return r
   805  }
   806  
   807  func (m *CaveatExpression) CloneMessageVT() proto.Message {
   808  	return m.CloneVT()
   809  }
   810  
   811  func (m *CaveatExpression_Operation) CloneVT() isCaveatExpression_OperationOrCaveat {
   812  	if m == nil {
   813  		return (*CaveatExpression_Operation)(nil)
   814  	}
   815  	r := new(CaveatExpression_Operation)
   816  	r.Operation = m.Operation.CloneVT()
   817  	return r
   818  }
   819  
   820  func (m *CaveatExpression_Caveat) CloneVT() isCaveatExpression_OperationOrCaveat {
   821  	if m == nil {
   822  		return (*CaveatExpression_Caveat)(nil)
   823  	}
   824  	r := new(CaveatExpression_Caveat)
   825  	r.Caveat = m.Caveat.CloneVT()
   826  	return r
   827  }
   828  
   829  func (m *CaveatOperation) CloneVT() *CaveatOperation {
   830  	if m == nil {
   831  		return (*CaveatOperation)(nil)
   832  	}
   833  	r := new(CaveatOperation)
   834  	r.Op = m.Op
   835  	if rhs := m.Children; rhs != nil {
   836  		tmpContainer := make([]*CaveatExpression, len(rhs))
   837  		for k, v := range rhs {
   838  			tmpContainer[k] = v.CloneVT()
   839  		}
   840  		r.Children = tmpContainer
   841  	}
   842  	if len(m.unknownFields) > 0 {
   843  		r.unknownFields = make([]byte, len(m.unknownFields))
   844  		copy(r.unknownFields, m.unknownFields)
   845  	}
   846  	return r
   847  }
   848  
   849  func (m *CaveatOperation) CloneMessageVT() proto.Message {
   850  	return m.CloneVT()
   851  }
   852  
   853  func (this *RelationTuple) EqualVT(that *RelationTuple) bool {
   854  	if this == that {
   855  		return true
   856  	} else if this == nil || that == nil {
   857  		return false
   858  	}
   859  	if !this.ResourceAndRelation.EqualVT(that.ResourceAndRelation) {
   860  		return false
   861  	}
   862  	if !this.Subject.EqualVT(that.Subject) {
   863  		return false
   864  	}
   865  	if !this.Caveat.EqualVT(that.Caveat) {
   866  		return false
   867  	}
   868  	return string(this.unknownFields) == string(that.unknownFields)
   869  }
   870  
   871  func (this *RelationTuple) EqualMessageVT(thatMsg proto.Message) bool {
   872  	that, ok := thatMsg.(*RelationTuple)
   873  	if !ok {
   874  		return false
   875  	}
   876  	return this.EqualVT(that)
   877  }
   878  func (this *ContextualizedCaveat) EqualVT(that *ContextualizedCaveat) bool {
   879  	if this == that {
   880  		return true
   881  	} else if this == nil || that == nil {
   882  		return false
   883  	}
   884  	if this.CaveatName != that.CaveatName {
   885  		return false
   886  	}
   887  	if !(*structpb1.Struct)(this.Context).EqualVT((*structpb1.Struct)(that.Context)) {
   888  		return false
   889  	}
   890  	return string(this.unknownFields) == string(that.unknownFields)
   891  }
   892  
   893  func (this *ContextualizedCaveat) EqualMessageVT(thatMsg proto.Message) bool {
   894  	that, ok := thatMsg.(*ContextualizedCaveat)
   895  	if !ok {
   896  		return false
   897  	}
   898  	return this.EqualVT(that)
   899  }
   900  func (this *CaveatDefinition) EqualVT(that *CaveatDefinition) bool {
   901  	if this == that {
   902  		return true
   903  	} else if this == nil || that == nil {
   904  		return false
   905  	}
   906  	if this.Name != that.Name {
   907  		return false
   908  	}
   909  	if string(this.SerializedExpression) != string(that.SerializedExpression) {
   910  		return false
   911  	}
   912  	if len(this.ParameterTypes) != len(that.ParameterTypes) {
   913  		return false
   914  	}
   915  	for i, vx := range this.ParameterTypes {
   916  		vy, ok := that.ParameterTypes[i]
   917  		if !ok {
   918  			return false
   919  		}
   920  		if p, q := vx, vy; p != q {
   921  			if p == nil {
   922  				p = &CaveatTypeReference{}
   923  			}
   924  			if q == nil {
   925  				q = &CaveatTypeReference{}
   926  			}
   927  			if !p.EqualVT(q) {
   928  				return false
   929  			}
   930  		}
   931  	}
   932  	if !this.Metadata.EqualVT(that.Metadata) {
   933  		return false
   934  	}
   935  	if !this.SourcePosition.EqualVT(that.SourcePosition) {
   936  		return false
   937  	}
   938  	return string(this.unknownFields) == string(that.unknownFields)
   939  }
   940  
   941  func (this *CaveatDefinition) EqualMessageVT(thatMsg proto.Message) bool {
   942  	that, ok := thatMsg.(*CaveatDefinition)
   943  	if !ok {
   944  		return false
   945  	}
   946  	return this.EqualVT(that)
   947  }
   948  func (this *CaveatTypeReference) EqualVT(that *CaveatTypeReference) bool {
   949  	if this == that {
   950  		return true
   951  	} else if this == nil || that == nil {
   952  		return false
   953  	}
   954  	if this.TypeName != that.TypeName {
   955  		return false
   956  	}
   957  	if len(this.ChildTypes) != len(that.ChildTypes) {
   958  		return false
   959  	}
   960  	for i, vx := range this.ChildTypes {
   961  		vy := that.ChildTypes[i]
   962  		if p, q := vx, vy; p != q {
   963  			if p == nil {
   964  				p = &CaveatTypeReference{}
   965  			}
   966  			if q == nil {
   967  				q = &CaveatTypeReference{}
   968  			}
   969  			if !p.EqualVT(q) {
   970  				return false
   971  			}
   972  		}
   973  	}
   974  	return string(this.unknownFields) == string(that.unknownFields)
   975  }
   976  
   977  func (this *CaveatTypeReference) EqualMessageVT(thatMsg proto.Message) bool {
   978  	that, ok := thatMsg.(*CaveatTypeReference)
   979  	if !ok {
   980  		return false
   981  	}
   982  	return this.EqualVT(that)
   983  }
   984  func (this *ObjectAndRelation) EqualVT(that *ObjectAndRelation) bool {
   985  	if this == that {
   986  		return true
   987  	} else if this == nil || that == nil {
   988  		return false
   989  	}
   990  	if this.Namespace != that.Namespace {
   991  		return false
   992  	}
   993  	if this.ObjectId != that.ObjectId {
   994  		return false
   995  	}
   996  	if this.Relation != that.Relation {
   997  		return false
   998  	}
   999  	return string(this.unknownFields) == string(that.unknownFields)
  1000  }
  1001  
  1002  func (this *ObjectAndRelation) EqualMessageVT(thatMsg proto.Message) bool {
  1003  	that, ok := thatMsg.(*ObjectAndRelation)
  1004  	if !ok {
  1005  		return false
  1006  	}
  1007  	return this.EqualVT(that)
  1008  }
  1009  func (this *RelationReference) EqualVT(that *RelationReference) bool {
  1010  	if this == that {
  1011  		return true
  1012  	} else if this == nil || that == nil {
  1013  		return false
  1014  	}
  1015  	if this.Namespace != that.Namespace {
  1016  		return false
  1017  	}
  1018  	if this.Relation != that.Relation {
  1019  		return false
  1020  	}
  1021  	return string(this.unknownFields) == string(that.unknownFields)
  1022  }
  1023  
  1024  func (this *RelationReference) EqualMessageVT(thatMsg proto.Message) bool {
  1025  	that, ok := thatMsg.(*RelationReference)
  1026  	if !ok {
  1027  		return false
  1028  	}
  1029  	return this.EqualVT(that)
  1030  }
  1031  func (this *Zookie) EqualVT(that *Zookie) bool {
  1032  	if this == that {
  1033  		return true
  1034  	} else if this == nil || that == nil {
  1035  		return false
  1036  	}
  1037  	if this.Token != that.Token {
  1038  		return false
  1039  	}
  1040  	return string(this.unknownFields) == string(that.unknownFields)
  1041  }
  1042  
  1043  func (this *Zookie) EqualMessageVT(thatMsg proto.Message) bool {
  1044  	that, ok := thatMsg.(*Zookie)
  1045  	if !ok {
  1046  		return false
  1047  	}
  1048  	return this.EqualVT(that)
  1049  }
  1050  func (this *RelationTupleUpdate) EqualVT(that *RelationTupleUpdate) bool {
  1051  	if this == that {
  1052  		return true
  1053  	} else if this == nil || that == nil {
  1054  		return false
  1055  	}
  1056  	if this.Operation != that.Operation {
  1057  		return false
  1058  	}
  1059  	if !this.Tuple.EqualVT(that.Tuple) {
  1060  		return false
  1061  	}
  1062  	return string(this.unknownFields) == string(that.unknownFields)
  1063  }
  1064  
  1065  func (this *RelationTupleUpdate) EqualMessageVT(thatMsg proto.Message) bool {
  1066  	that, ok := thatMsg.(*RelationTupleUpdate)
  1067  	if !ok {
  1068  		return false
  1069  	}
  1070  	return this.EqualVT(that)
  1071  }
  1072  func (this *RelationTupleTreeNode) EqualVT(that *RelationTupleTreeNode) bool {
  1073  	if this == that {
  1074  		return true
  1075  	} else if this == nil || that == nil {
  1076  		return false
  1077  	}
  1078  	if this.NodeType == nil && that.NodeType != nil {
  1079  		return false
  1080  	} else if this.NodeType != nil {
  1081  		if that.NodeType == nil {
  1082  			return false
  1083  		}
  1084  		if !this.NodeType.(interface {
  1085  			EqualVT(isRelationTupleTreeNode_NodeType) bool
  1086  		}).EqualVT(that.NodeType) {
  1087  			return false
  1088  		}
  1089  	}
  1090  	if !this.Expanded.EqualVT(that.Expanded) {
  1091  		return false
  1092  	}
  1093  	if !this.CaveatExpression.EqualVT(that.CaveatExpression) {
  1094  		return false
  1095  	}
  1096  	return string(this.unknownFields) == string(that.unknownFields)
  1097  }
  1098  
  1099  func (this *RelationTupleTreeNode) EqualMessageVT(thatMsg proto.Message) bool {
  1100  	that, ok := thatMsg.(*RelationTupleTreeNode)
  1101  	if !ok {
  1102  		return false
  1103  	}
  1104  	return this.EqualVT(that)
  1105  }
  1106  func (this *RelationTupleTreeNode_IntermediateNode) EqualVT(thatIface isRelationTupleTreeNode_NodeType) bool {
  1107  	that, ok := thatIface.(*RelationTupleTreeNode_IntermediateNode)
  1108  	if !ok {
  1109  		return false
  1110  	}
  1111  	if this == that {
  1112  		return true
  1113  	}
  1114  	if this == nil && that != nil || this != nil && that == nil {
  1115  		return false
  1116  	}
  1117  	if p, q := this.IntermediateNode, that.IntermediateNode; p != q {
  1118  		if p == nil {
  1119  			p = &SetOperationUserset{}
  1120  		}
  1121  		if q == nil {
  1122  			q = &SetOperationUserset{}
  1123  		}
  1124  		if !p.EqualVT(q) {
  1125  			return false
  1126  		}
  1127  	}
  1128  	return true
  1129  }
  1130  
  1131  func (this *RelationTupleTreeNode_LeafNode) EqualVT(thatIface isRelationTupleTreeNode_NodeType) bool {
  1132  	that, ok := thatIface.(*RelationTupleTreeNode_LeafNode)
  1133  	if !ok {
  1134  		return false
  1135  	}
  1136  	if this == that {
  1137  		return true
  1138  	}
  1139  	if this == nil && that != nil || this != nil && that == nil {
  1140  		return false
  1141  	}
  1142  	if p, q := this.LeafNode, that.LeafNode; p != q {
  1143  		if p == nil {
  1144  			p = &DirectSubjects{}
  1145  		}
  1146  		if q == nil {
  1147  			q = &DirectSubjects{}
  1148  		}
  1149  		if !p.EqualVT(q) {
  1150  			return false
  1151  		}
  1152  	}
  1153  	return true
  1154  }
  1155  
  1156  func (this *SetOperationUserset) EqualVT(that *SetOperationUserset) bool {
  1157  	if this == that {
  1158  		return true
  1159  	} else if this == nil || that == nil {
  1160  		return false
  1161  	}
  1162  	if this.Operation != that.Operation {
  1163  		return false
  1164  	}
  1165  	if len(this.ChildNodes) != len(that.ChildNodes) {
  1166  		return false
  1167  	}
  1168  	for i, vx := range this.ChildNodes {
  1169  		vy := that.ChildNodes[i]
  1170  		if p, q := vx, vy; p != q {
  1171  			if p == nil {
  1172  				p = &RelationTupleTreeNode{}
  1173  			}
  1174  			if q == nil {
  1175  				q = &RelationTupleTreeNode{}
  1176  			}
  1177  			if !p.EqualVT(q) {
  1178  				return false
  1179  			}
  1180  		}
  1181  	}
  1182  	return string(this.unknownFields) == string(that.unknownFields)
  1183  }
  1184  
  1185  func (this *SetOperationUserset) EqualMessageVT(thatMsg proto.Message) bool {
  1186  	that, ok := thatMsg.(*SetOperationUserset)
  1187  	if !ok {
  1188  		return false
  1189  	}
  1190  	return this.EqualVT(that)
  1191  }
  1192  func (this *DirectSubject) EqualVT(that *DirectSubject) bool {
  1193  	if this == that {
  1194  		return true
  1195  	} else if this == nil || that == nil {
  1196  		return false
  1197  	}
  1198  	if !this.Subject.EqualVT(that.Subject) {
  1199  		return false
  1200  	}
  1201  	if !this.CaveatExpression.EqualVT(that.CaveatExpression) {
  1202  		return false
  1203  	}
  1204  	return string(this.unknownFields) == string(that.unknownFields)
  1205  }
  1206  
  1207  func (this *DirectSubject) EqualMessageVT(thatMsg proto.Message) bool {
  1208  	that, ok := thatMsg.(*DirectSubject)
  1209  	if !ok {
  1210  		return false
  1211  	}
  1212  	return this.EqualVT(that)
  1213  }
  1214  func (this *DirectSubjects) EqualVT(that *DirectSubjects) bool {
  1215  	if this == that {
  1216  		return true
  1217  	} else if this == nil || that == nil {
  1218  		return false
  1219  	}
  1220  	if len(this.Subjects) != len(that.Subjects) {
  1221  		return false
  1222  	}
  1223  	for i, vx := range this.Subjects {
  1224  		vy := that.Subjects[i]
  1225  		if p, q := vx, vy; p != q {
  1226  			if p == nil {
  1227  				p = &DirectSubject{}
  1228  			}
  1229  			if q == nil {
  1230  				q = &DirectSubject{}
  1231  			}
  1232  			if !p.EqualVT(q) {
  1233  				return false
  1234  			}
  1235  		}
  1236  	}
  1237  	return string(this.unknownFields) == string(that.unknownFields)
  1238  }
  1239  
  1240  func (this *DirectSubjects) EqualMessageVT(thatMsg proto.Message) bool {
  1241  	that, ok := thatMsg.(*DirectSubjects)
  1242  	if !ok {
  1243  		return false
  1244  	}
  1245  	return this.EqualVT(that)
  1246  }
  1247  func (this *Metadata) EqualVT(that *Metadata) bool {
  1248  	if this == that {
  1249  		return true
  1250  	} else if this == nil || that == nil {
  1251  		return false
  1252  	}
  1253  	if len(this.MetadataMessage) != len(that.MetadataMessage) {
  1254  		return false
  1255  	}
  1256  	for i, vx := range this.MetadataMessage {
  1257  		vy := that.MetadataMessage[i]
  1258  		if p, q := vx, vy; p != q {
  1259  			if p == nil {
  1260  				p = &anypb.Any{}
  1261  			}
  1262  			if q == nil {
  1263  				q = &anypb.Any{}
  1264  			}
  1265  			if !(*anypb1.Any)(p).EqualVT((*anypb1.Any)(q)) {
  1266  				return false
  1267  			}
  1268  		}
  1269  	}
  1270  	return string(this.unknownFields) == string(that.unknownFields)
  1271  }
  1272  
  1273  func (this *Metadata) EqualMessageVT(thatMsg proto.Message) bool {
  1274  	that, ok := thatMsg.(*Metadata)
  1275  	if !ok {
  1276  		return false
  1277  	}
  1278  	return this.EqualVT(that)
  1279  }
  1280  func (this *NamespaceDefinition) EqualVT(that *NamespaceDefinition) bool {
  1281  	if this == that {
  1282  		return true
  1283  	} else if this == nil || that == nil {
  1284  		return false
  1285  	}
  1286  	if this.Name != that.Name {
  1287  		return false
  1288  	}
  1289  	if len(this.Relation) != len(that.Relation) {
  1290  		return false
  1291  	}
  1292  	for i, vx := range this.Relation {
  1293  		vy := that.Relation[i]
  1294  		if p, q := vx, vy; p != q {
  1295  			if p == nil {
  1296  				p = &Relation{}
  1297  			}
  1298  			if q == nil {
  1299  				q = &Relation{}
  1300  			}
  1301  			if !p.EqualVT(q) {
  1302  				return false
  1303  			}
  1304  		}
  1305  	}
  1306  	if !this.Metadata.EqualVT(that.Metadata) {
  1307  		return false
  1308  	}
  1309  	if !this.SourcePosition.EqualVT(that.SourcePosition) {
  1310  		return false
  1311  	}
  1312  	return string(this.unknownFields) == string(that.unknownFields)
  1313  }
  1314  
  1315  func (this *NamespaceDefinition) EqualMessageVT(thatMsg proto.Message) bool {
  1316  	that, ok := thatMsg.(*NamespaceDefinition)
  1317  	if !ok {
  1318  		return false
  1319  	}
  1320  	return this.EqualVT(that)
  1321  }
  1322  func (this *Relation) EqualVT(that *Relation) bool {
  1323  	if this == that {
  1324  		return true
  1325  	} else if this == nil || that == nil {
  1326  		return false
  1327  	}
  1328  	if this.Name != that.Name {
  1329  		return false
  1330  	}
  1331  	if !this.UsersetRewrite.EqualVT(that.UsersetRewrite) {
  1332  		return false
  1333  	}
  1334  	if !this.TypeInformation.EqualVT(that.TypeInformation) {
  1335  		return false
  1336  	}
  1337  	if !this.Metadata.EqualVT(that.Metadata) {
  1338  		return false
  1339  	}
  1340  	if !this.SourcePosition.EqualVT(that.SourcePosition) {
  1341  		return false
  1342  	}
  1343  	if this.AliasingRelation != that.AliasingRelation {
  1344  		return false
  1345  	}
  1346  	if this.CanonicalCacheKey != that.CanonicalCacheKey {
  1347  		return false
  1348  	}
  1349  	return string(this.unknownFields) == string(that.unknownFields)
  1350  }
  1351  
  1352  func (this *Relation) EqualMessageVT(thatMsg proto.Message) bool {
  1353  	that, ok := thatMsg.(*Relation)
  1354  	if !ok {
  1355  		return false
  1356  	}
  1357  	return this.EqualVT(that)
  1358  }
  1359  func (this *ReachabilityGraph) EqualVT(that *ReachabilityGraph) bool {
  1360  	if this == that {
  1361  		return true
  1362  	} else if this == nil || that == nil {
  1363  		return false
  1364  	}
  1365  	if len(this.EntrypointsBySubjectType) != len(that.EntrypointsBySubjectType) {
  1366  		return false
  1367  	}
  1368  	for i, vx := range this.EntrypointsBySubjectType {
  1369  		vy, ok := that.EntrypointsBySubjectType[i]
  1370  		if !ok {
  1371  			return false
  1372  		}
  1373  		if p, q := vx, vy; p != q {
  1374  			if p == nil {
  1375  				p = &ReachabilityEntrypoints{}
  1376  			}
  1377  			if q == nil {
  1378  				q = &ReachabilityEntrypoints{}
  1379  			}
  1380  			if !p.EqualVT(q) {
  1381  				return false
  1382  			}
  1383  		}
  1384  	}
  1385  	if len(this.EntrypointsBySubjectRelation) != len(that.EntrypointsBySubjectRelation) {
  1386  		return false
  1387  	}
  1388  	for i, vx := range this.EntrypointsBySubjectRelation {
  1389  		vy, ok := that.EntrypointsBySubjectRelation[i]
  1390  		if !ok {
  1391  			return false
  1392  		}
  1393  		if p, q := vx, vy; p != q {
  1394  			if p == nil {
  1395  				p = &ReachabilityEntrypoints{}
  1396  			}
  1397  			if q == nil {
  1398  				q = &ReachabilityEntrypoints{}
  1399  			}
  1400  			if !p.EqualVT(q) {
  1401  				return false
  1402  			}
  1403  		}
  1404  	}
  1405  	return string(this.unknownFields) == string(that.unknownFields)
  1406  }
  1407  
  1408  func (this *ReachabilityGraph) EqualMessageVT(thatMsg proto.Message) bool {
  1409  	that, ok := thatMsg.(*ReachabilityGraph)
  1410  	if !ok {
  1411  		return false
  1412  	}
  1413  	return this.EqualVT(that)
  1414  }
  1415  func (this *ReachabilityEntrypoints) EqualVT(that *ReachabilityEntrypoints) bool {
  1416  	if this == that {
  1417  		return true
  1418  	} else if this == nil || that == nil {
  1419  		return false
  1420  	}
  1421  	if len(this.Entrypoints) != len(that.Entrypoints) {
  1422  		return false
  1423  	}
  1424  	for i, vx := range this.Entrypoints {
  1425  		vy := that.Entrypoints[i]
  1426  		if p, q := vx, vy; p != q {
  1427  			if p == nil {
  1428  				p = &ReachabilityEntrypoint{}
  1429  			}
  1430  			if q == nil {
  1431  				q = &ReachabilityEntrypoint{}
  1432  			}
  1433  			if !p.EqualVT(q) {
  1434  				return false
  1435  			}
  1436  		}
  1437  	}
  1438  	if this.SubjectType != that.SubjectType {
  1439  		return false
  1440  	}
  1441  	if !this.SubjectRelation.EqualVT(that.SubjectRelation) {
  1442  		return false
  1443  	}
  1444  	return string(this.unknownFields) == string(that.unknownFields)
  1445  }
  1446  
  1447  func (this *ReachabilityEntrypoints) EqualMessageVT(thatMsg proto.Message) bool {
  1448  	that, ok := thatMsg.(*ReachabilityEntrypoints)
  1449  	if !ok {
  1450  		return false
  1451  	}
  1452  	return this.EqualVT(that)
  1453  }
  1454  func (this *ReachabilityEntrypoint) EqualVT(that *ReachabilityEntrypoint) bool {
  1455  	if this == that {
  1456  		return true
  1457  	} else if this == nil || that == nil {
  1458  		return false
  1459  	}
  1460  	if this.Kind != that.Kind {
  1461  		return false
  1462  	}
  1463  	if !this.TargetRelation.EqualVT(that.TargetRelation) {
  1464  		return false
  1465  	}
  1466  	if this.ResultStatus != that.ResultStatus {
  1467  		return false
  1468  	}
  1469  	if this.TuplesetRelation != that.TuplesetRelation {
  1470  		return false
  1471  	}
  1472  	return string(this.unknownFields) == string(that.unknownFields)
  1473  }
  1474  
  1475  func (this *ReachabilityEntrypoint) EqualMessageVT(thatMsg proto.Message) bool {
  1476  	that, ok := thatMsg.(*ReachabilityEntrypoint)
  1477  	if !ok {
  1478  		return false
  1479  	}
  1480  	return this.EqualVT(that)
  1481  }
  1482  func (this *TypeInformation) EqualVT(that *TypeInformation) bool {
  1483  	if this == that {
  1484  		return true
  1485  	} else if this == nil || that == nil {
  1486  		return false
  1487  	}
  1488  	if len(this.AllowedDirectRelations) != len(that.AllowedDirectRelations) {
  1489  		return false
  1490  	}
  1491  	for i, vx := range this.AllowedDirectRelations {
  1492  		vy := that.AllowedDirectRelations[i]
  1493  		if p, q := vx, vy; p != q {
  1494  			if p == nil {
  1495  				p = &AllowedRelation{}
  1496  			}
  1497  			if q == nil {
  1498  				q = &AllowedRelation{}
  1499  			}
  1500  			if !p.EqualVT(q) {
  1501  				return false
  1502  			}
  1503  		}
  1504  	}
  1505  	return string(this.unknownFields) == string(that.unknownFields)
  1506  }
  1507  
  1508  func (this *TypeInformation) EqualMessageVT(thatMsg proto.Message) bool {
  1509  	that, ok := thatMsg.(*TypeInformation)
  1510  	if !ok {
  1511  		return false
  1512  	}
  1513  	return this.EqualVT(that)
  1514  }
  1515  func (this *AllowedRelation_PublicWildcard) EqualVT(that *AllowedRelation_PublicWildcard) bool {
  1516  	if this == that {
  1517  		return true
  1518  	} else if this == nil || that == nil {
  1519  		return false
  1520  	}
  1521  	return string(this.unknownFields) == string(that.unknownFields)
  1522  }
  1523  
  1524  func (this *AllowedRelation_PublicWildcard) EqualMessageVT(thatMsg proto.Message) bool {
  1525  	that, ok := thatMsg.(*AllowedRelation_PublicWildcard)
  1526  	if !ok {
  1527  		return false
  1528  	}
  1529  	return this.EqualVT(that)
  1530  }
  1531  func (this *AllowedRelation) EqualVT(that *AllowedRelation) bool {
  1532  	if this == that {
  1533  		return true
  1534  	} else if this == nil || that == nil {
  1535  		return false
  1536  	}
  1537  	if this.RelationOrWildcard == nil && that.RelationOrWildcard != nil {
  1538  		return false
  1539  	} else if this.RelationOrWildcard != nil {
  1540  		if that.RelationOrWildcard == nil {
  1541  			return false
  1542  		}
  1543  		if !this.RelationOrWildcard.(interface {
  1544  			EqualVT(isAllowedRelation_RelationOrWildcard) bool
  1545  		}).EqualVT(that.RelationOrWildcard) {
  1546  			return false
  1547  		}
  1548  	}
  1549  	if this.Namespace != that.Namespace {
  1550  		return false
  1551  	}
  1552  	if !this.SourcePosition.EqualVT(that.SourcePosition) {
  1553  		return false
  1554  	}
  1555  	if !this.RequiredCaveat.EqualVT(that.RequiredCaveat) {
  1556  		return false
  1557  	}
  1558  	return string(this.unknownFields) == string(that.unknownFields)
  1559  }
  1560  
  1561  func (this *AllowedRelation) EqualMessageVT(thatMsg proto.Message) bool {
  1562  	that, ok := thatMsg.(*AllowedRelation)
  1563  	if !ok {
  1564  		return false
  1565  	}
  1566  	return this.EqualVT(that)
  1567  }
  1568  func (this *AllowedRelation_Relation) EqualVT(thatIface isAllowedRelation_RelationOrWildcard) bool {
  1569  	that, ok := thatIface.(*AllowedRelation_Relation)
  1570  	if !ok {
  1571  		return false
  1572  	}
  1573  	if this == that {
  1574  		return true
  1575  	}
  1576  	if this == nil && that != nil || this != nil && that == nil {
  1577  		return false
  1578  	}
  1579  	if this.Relation != that.Relation {
  1580  		return false
  1581  	}
  1582  	return true
  1583  }
  1584  
  1585  func (this *AllowedRelation_PublicWildcard_) EqualVT(thatIface isAllowedRelation_RelationOrWildcard) bool {
  1586  	that, ok := thatIface.(*AllowedRelation_PublicWildcard_)
  1587  	if !ok {
  1588  		return false
  1589  	}
  1590  	if this == that {
  1591  		return true
  1592  	}
  1593  	if this == nil && that != nil || this != nil && that == nil {
  1594  		return false
  1595  	}
  1596  	if p, q := this.PublicWildcard, that.PublicWildcard; p != q {
  1597  		if p == nil {
  1598  			p = &AllowedRelation_PublicWildcard{}
  1599  		}
  1600  		if q == nil {
  1601  			q = &AllowedRelation_PublicWildcard{}
  1602  		}
  1603  		if !p.EqualVT(q) {
  1604  			return false
  1605  		}
  1606  	}
  1607  	return true
  1608  }
  1609  
  1610  func (this *AllowedCaveat) EqualVT(that *AllowedCaveat) bool {
  1611  	if this == that {
  1612  		return true
  1613  	} else if this == nil || that == nil {
  1614  		return false
  1615  	}
  1616  	if this.CaveatName != that.CaveatName {
  1617  		return false
  1618  	}
  1619  	return string(this.unknownFields) == string(that.unknownFields)
  1620  }
  1621  
  1622  func (this *AllowedCaveat) EqualMessageVT(thatMsg proto.Message) bool {
  1623  	that, ok := thatMsg.(*AllowedCaveat)
  1624  	if !ok {
  1625  		return false
  1626  	}
  1627  	return this.EqualVT(that)
  1628  }
  1629  func (this *UsersetRewrite) EqualVT(that *UsersetRewrite) bool {
  1630  	if this == that {
  1631  		return true
  1632  	} else if this == nil || that == nil {
  1633  		return false
  1634  	}
  1635  	if this.RewriteOperation == nil && that.RewriteOperation != nil {
  1636  		return false
  1637  	} else if this.RewriteOperation != nil {
  1638  		if that.RewriteOperation == nil {
  1639  			return false
  1640  		}
  1641  		if !this.RewriteOperation.(interface {
  1642  			EqualVT(isUsersetRewrite_RewriteOperation) bool
  1643  		}).EqualVT(that.RewriteOperation) {
  1644  			return false
  1645  		}
  1646  	}
  1647  	if !this.SourcePosition.EqualVT(that.SourcePosition) {
  1648  		return false
  1649  	}
  1650  	return string(this.unknownFields) == string(that.unknownFields)
  1651  }
  1652  
  1653  func (this *UsersetRewrite) EqualMessageVT(thatMsg proto.Message) bool {
  1654  	that, ok := thatMsg.(*UsersetRewrite)
  1655  	if !ok {
  1656  		return false
  1657  	}
  1658  	return this.EqualVT(that)
  1659  }
  1660  func (this *UsersetRewrite_Union) EqualVT(thatIface isUsersetRewrite_RewriteOperation) bool {
  1661  	that, ok := thatIface.(*UsersetRewrite_Union)
  1662  	if !ok {
  1663  		return false
  1664  	}
  1665  	if this == that {
  1666  		return true
  1667  	}
  1668  	if this == nil && that != nil || this != nil && that == nil {
  1669  		return false
  1670  	}
  1671  	if p, q := this.Union, that.Union; p != q {
  1672  		if p == nil {
  1673  			p = &SetOperation{}
  1674  		}
  1675  		if q == nil {
  1676  			q = &SetOperation{}
  1677  		}
  1678  		if !p.EqualVT(q) {
  1679  			return false
  1680  		}
  1681  	}
  1682  	return true
  1683  }
  1684  
  1685  func (this *UsersetRewrite_Intersection) EqualVT(thatIface isUsersetRewrite_RewriteOperation) bool {
  1686  	that, ok := thatIface.(*UsersetRewrite_Intersection)
  1687  	if !ok {
  1688  		return false
  1689  	}
  1690  	if this == that {
  1691  		return true
  1692  	}
  1693  	if this == nil && that != nil || this != nil && that == nil {
  1694  		return false
  1695  	}
  1696  	if p, q := this.Intersection, that.Intersection; p != q {
  1697  		if p == nil {
  1698  			p = &SetOperation{}
  1699  		}
  1700  		if q == nil {
  1701  			q = &SetOperation{}
  1702  		}
  1703  		if !p.EqualVT(q) {
  1704  			return false
  1705  		}
  1706  	}
  1707  	return true
  1708  }
  1709  
  1710  func (this *UsersetRewrite_Exclusion) EqualVT(thatIface isUsersetRewrite_RewriteOperation) bool {
  1711  	that, ok := thatIface.(*UsersetRewrite_Exclusion)
  1712  	if !ok {
  1713  		return false
  1714  	}
  1715  	if this == that {
  1716  		return true
  1717  	}
  1718  	if this == nil && that != nil || this != nil && that == nil {
  1719  		return false
  1720  	}
  1721  	if p, q := this.Exclusion, that.Exclusion; p != q {
  1722  		if p == nil {
  1723  			p = &SetOperation{}
  1724  		}
  1725  		if q == nil {
  1726  			q = &SetOperation{}
  1727  		}
  1728  		if !p.EqualVT(q) {
  1729  			return false
  1730  		}
  1731  	}
  1732  	return true
  1733  }
  1734  
  1735  func (this *SetOperation_Child_This) EqualVT(that *SetOperation_Child_This) bool {
  1736  	if this == that {
  1737  		return true
  1738  	} else if this == nil || that == nil {
  1739  		return false
  1740  	}
  1741  	return string(this.unknownFields) == string(that.unknownFields)
  1742  }
  1743  
  1744  func (this *SetOperation_Child_This) EqualMessageVT(thatMsg proto.Message) bool {
  1745  	that, ok := thatMsg.(*SetOperation_Child_This)
  1746  	if !ok {
  1747  		return false
  1748  	}
  1749  	return this.EqualVT(that)
  1750  }
  1751  func (this *SetOperation_Child_Nil) EqualVT(that *SetOperation_Child_Nil) bool {
  1752  	if this == that {
  1753  		return true
  1754  	} else if this == nil || that == nil {
  1755  		return false
  1756  	}
  1757  	return string(this.unknownFields) == string(that.unknownFields)
  1758  }
  1759  
  1760  func (this *SetOperation_Child_Nil) EqualMessageVT(thatMsg proto.Message) bool {
  1761  	that, ok := thatMsg.(*SetOperation_Child_Nil)
  1762  	if !ok {
  1763  		return false
  1764  	}
  1765  	return this.EqualVT(that)
  1766  }
  1767  func (this *SetOperation_Child) EqualVT(that *SetOperation_Child) bool {
  1768  	if this == that {
  1769  		return true
  1770  	} else if this == nil || that == nil {
  1771  		return false
  1772  	}
  1773  	if this.ChildType == nil && that.ChildType != nil {
  1774  		return false
  1775  	} else if this.ChildType != nil {
  1776  		if that.ChildType == nil {
  1777  			return false
  1778  		}
  1779  		if !this.ChildType.(interface {
  1780  			EqualVT(isSetOperation_Child_ChildType) bool
  1781  		}).EqualVT(that.ChildType) {
  1782  			return false
  1783  		}
  1784  	}
  1785  	if !this.SourcePosition.EqualVT(that.SourcePosition) {
  1786  		return false
  1787  	}
  1788  	if len(this.OperationPath) != len(that.OperationPath) {
  1789  		return false
  1790  	}
  1791  	for i, vx := range this.OperationPath {
  1792  		vy := that.OperationPath[i]
  1793  		if vx != vy {
  1794  			return false
  1795  		}
  1796  	}
  1797  	return string(this.unknownFields) == string(that.unknownFields)
  1798  }
  1799  
  1800  func (this *SetOperation_Child) EqualMessageVT(thatMsg proto.Message) bool {
  1801  	that, ok := thatMsg.(*SetOperation_Child)
  1802  	if !ok {
  1803  		return false
  1804  	}
  1805  	return this.EqualVT(that)
  1806  }
  1807  func (this *SetOperation_Child_XThis) EqualVT(thatIface isSetOperation_Child_ChildType) bool {
  1808  	that, ok := thatIface.(*SetOperation_Child_XThis)
  1809  	if !ok {
  1810  		return false
  1811  	}
  1812  	if this == that {
  1813  		return true
  1814  	}
  1815  	if this == nil && that != nil || this != nil && that == nil {
  1816  		return false
  1817  	}
  1818  	if p, q := this.XThis, that.XThis; p != q {
  1819  		if p == nil {
  1820  			p = &SetOperation_Child_This{}
  1821  		}
  1822  		if q == nil {
  1823  			q = &SetOperation_Child_This{}
  1824  		}
  1825  		if !p.EqualVT(q) {
  1826  			return false
  1827  		}
  1828  	}
  1829  	return true
  1830  }
  1831  
  1832  func (this *SetOperation_Child_ComputedUserset) EqualVT(thatIface isSetOperation_Child_ChildType) bool {
  1833  	that, ok := thatIface.(*SetOperation_Child_ComputedUserset)
  1834  	if !ok {
  1835  		return false
  1836  	}
  1837  	if this == that {
  1838  		return true
  1839  	}
  1840  	if this == nil && that != nil || this != nil && that == nil {
  1841  		return false
  1842  	}
  1843  	if p, q := this.ComputedUserset, that.ComputedUserset; p != q {
  1844  		if p == nil {
  1845  			p = &ComputedUserset{}
  1846  		}
  1847  		if q == nil {
  1848  			q = &ComputedUserset{}
  1849  		}
  1850  		if !p.EqualVT(q) {
  1851  			return false
  1852  		}
  1853  	}
  1854  	return true
  1855  }
  1856  
  1857  func (this *SetOperation_Child_TupleToUserset) EqualVT(thatIface isSetOperation_Child_ChildType) bool {
  1858  	that, ok := thatIface.(*SetOperation_Child_TupleToUserset)
  1859  	if !ok {
  1860  		return false
  1861  	}
  1862  	if this == that {
  1863  		return true
  1864  	}
  1865  	if this == nil && that != nil || this != nil && that == nil {
  1866  		return false
  1867  	}
  1868  	if p, q := this.TupleToUserset, that.TupleToUserset; p != q {
  1869  		if p == nil {
  1870  			p = &TupleToUserset{}
  1871  		}
  1872  		if q == nil {
  1873  			q = &TupleToUserset{}
  1874  		}
  1875  		if !p.EqualVT(q) {
  1876  			return false
  1877  		}
  1878  	}
  1879  	return true
  1880  }
  1881  
  1882  func (this *SetOperation_Child_UsersetRewrite) EqualVT(thatIface isSetOperation_Child_ChildType) bool {
  1883  	that, ok := thatIface.(*SetOperation_Child_UsersetRewrite)
  1884  	if !ok {
  1885  		return false
  1886  	}
  1887  	if this == that {
  1888  		return true
  1889  	}
  1890  	if this == nil && that != nil || this != nil && that == nil {
  1891  		return false
  1892  	}
  1893  	if p, q := this.UsersetRewrite, that.UsersetRewrite; p != q {
  1894  		if p == nil {
  1895  			p = &UsersetRewrite{}
  1896  		}
  1897  		if q == nil {
  1898  			q = &UsersetRewrite{}
  1899  		}
  1900  		if !p.EqualVT(q) {
  1901  			return false
  1902  		}
  1903  	}
  1904  	return true
  1905  }
  1906  
  1907  func (this *SetOperation_Child_XNil) EqualVT(thatIface isSetOperation_Child_ChildType) bool {
  1908  	that, ok := thatIface.(*SetOperation_Child_XNil)
  1909  	if !ok {
  1910  		return false
  1911  	}
  1912  	if this == that {
  1913  		return true
  1914  	}
  1915  	if this == nil && that != nil || this != nil && that == nil {
  1916  		return false
  1917  	}
  1918  	if p, q := this.XNil, that.XNil; p != q {
  1919  		if p == nil {
  1920  			p = &SetOperation_Child_Nil{}
  1921  		}
  1922  		if q == nil {
  1923  			q = &SetOperation_Child_Nil{}
  1924  		}
  1925  		if !p.EqualVT(q) {
  1926  			return false
  1927  		}
  1928  	}
  1929  	return true
  1930  }
  1931  
  1932  func (this *SetOperation) EqualVT(that *SetOperation) bool {
  1933  	if this == that {
  1934  		return true
  1935  	} else if this == nil || that == nil {
  1936  		return false
  1937  	}
  1938  	if len(this.Child) != len(that.Child) {
  1939  		return false
  1940  	}
  1941  	for i, vx := range this.Child {
  1942  		vy := that.Child[i]
  1943  		if p, q := vx, vy; p != q {
  1944  			if p == nil {
  1945  				p = &SetOperation_Child{}
  1946  			}
  1947  			if q == nil {
  1948  				q = &SetOperation_Child{}
  1949  			}
  1950  			if !p.EqualVT(q) {
  1951  				return false
  1952  			}
  1953  		}
  1954  	}
  1955  	return string(this.unknownFields) == string(that.unknownFields)
  1956  }
  1957  
  1958  func (this *SetOperation) EqualMessageVT(thatMsg proto.Message) bool {
  1959  	that, ok := thatMsg.(*SetOperation)
  1960  	if !ok {
  1961  		return false
  1962  	}
  1963  	return this.EqualVT(that)
  1964  }
  1965  func (this *TupleToUserset_Tupleset) EqualVT(that *TupleToUserset_Tupleset) bool {
  1966  	if this == that {
  1967  		return true
  1968  	} else if this == nil || that == nil {
  1969  		return false
  1970  	}
  1971  	if this.Relation != that.Relation {
  1972  		return false
  1973  	}
  1974  	return string(this.unknownFields) == string(that.unknownFields)
  1975  }
  1976  
  1977  func (this *TupleToUserset_Tupleset) EqualMessageVT(thatMsg proto.Message) bool {
  1978  	that, ok := thatMsg.(*TupleToUserset_Tupleset)
  1979  	if !ok {
  1980  		return false
  1981  	}
  1982  	return this.EqualVT(that)
  1983  }
  1984  func (this *TupleToUserset) EqualVT(that *TupleToUserset) bool {
  1985  	if this == that {
  1986  		return true
  1987  	} else if this == nil || that == nil {
  1988  		return false
  1989  	}
  1990  	if !this.Tupleset.EqualVT(that.Tupleset) {
  1991  		return false
  1992  	}
  1993  	if !this.ComputedUserset.EqualVT(that.ComputedUserset) {
  1994  		return false
  1995  	}
  1996  	if !this.SourcePosition.EqualVT(that.SourcePosition) {
  1997  		return false
  1998  	}
  1999  	return string(this.unknownFields) == string(that.unknownFields)
  2000  }
  2001  
  2002  func (this *TupleToUserset) EqualMessageVT(thatMsg proto.Message) bool {
  2003  	that, ok := thatMsg.(*TupleToUserset)
  2004  	if !ok {
  2005  		return false
  2006  	}
  2007  	return this.EqualVT(that)
  2008  }
  2009  func (this *ComputedUserset) EqualVT(that *ComputedUserset) bool {
  2010  	if this == that {
  2011  		return true
  2012  	} else if this == nil || that == nil {
  2013  		return false
  2014  	}
  2015  	if this.Object != that.Object {
  2016  		return false
  2017  	}
  2018  	if this.Relation != that.Relation {
  2019  		return false
  2020  	}
  2021  	if !this.SourcePosition.EqualVT(that.SourcePosition) {
  2022  		return false
  2023  	}
  2024  	return string(this.unknownFields) == string(that.unknownFields)
  2025  }
  2026  
  2027  func (this *ComputedUserset) EqualMessageVT(thatMsg proto.Message) bool {
  2028  	that, ok := thatMsg.(*ComputedUserset)
  2029  	if !ok {
  2030  		return false
  2031  	}
  2032  	return this.EqualVT(that)
  2033  }
  2034  func (this *SourcePosition) EqualVT(that *SourcePosition) bool {
  2035  	if this == that {
  2036  		return true
  2037  	} else if this == nil || that == nil {
  2038  		return false
  2039  	}
  2040  	if this.ZeroIndexedLineNumber != that.ZeroIndexedLineNumber {
  2041  		return false
  2042  	}
  2043  	if this.ZeroIndexedColumnPosition != that.ZeroIndexedColumnPosition {
  2044  		return false
  2045  	}
  2046  	return string(this.unknownFields) == string(that.unknownFields)
  2047  }
  2048  
  2049  func (this *SourcePosition) EqualMessageVT(thatMsg proto.Message) bool {
  2050  	that, ok := thatMsg.(*SourcePosition)
  2051  	if !ok {
  2052  		return false
  2053  	}
  2054  	return this.EqualVT(that)
  2055  }
  2056  func (this *CaveatExpression) EqualVT(that *CaveatExpression) bool {
  2057  	if this == that {
  2058  		return true
  2059  	} else if this == nil || that == nil {
  2060  		return false
  2061  	}
  2062  	if this.OperationOrCaveat == nil && that.OperationOrCaveat != nil {
  2063  		return false
  2064  	} else if this.OperationOrCaveat != nil {
  2065  		if that.OperationOrCaveat == nil {
  2066  			return false
  2067  		}
  2068  		if !this.OperationOrCaveat.(interface {
  2069  			EqualVT(isCaveatExpression_OperationOrCaveat) bool
  2070  		}).EqualVT(that.OperationOrCaveat) {
  2071  			return false
  2072  		}
  2073  	}
  2074  	return string(this.unknownFields) == string(that.unknownFields)
  2075  }
  2076  
  2077  func (this *CaveatExpression) EqualMessageVT(thatMsg proto.Message) bool {
  2078  	that, ok := thatMsg.(*CaveatExpression)
  2079  	if !ok {
  2080  		return false
  2081  	}
  2082  	return this.EqualVT(that)
  2083  }
  2084  func (this *CaveatExpression_Operation) EqualVT(thatIface isCaveatExpression_OperationOrCaveat) bool {
  2085  	that, ok := thatIface.(*CaveatExpression_Operation)
  2086  	if !ok {
  2087  		return false
  2088  	}
  2089  	if this == that {
  2090  		return true
  2091  	}
  2092  	if this == nil && that != nil || this != nil && that == nil {
  2093  		return false
  2094  	}
  2095  	if p, q := this.Operation, that.Operation; p != q {
  2096  		if p == nil {
  2097  			p = &CaveatOperation{}
  2098  		}
  2099  		if q == nil {
  2100  			q = &CaveatOperation{}
  2101  		}
  2102  		if !p.EqualVT(q) {
  2103  			return false
  2104  		}
  2105  	}
  2106  	return true
  2107  }
  2108  
  2109  func (this *CaveatExpression_Caveat) EqualVT(thatIface isCaveatExpression_OperationOrCaveat) bool {
  2110  	that, ok := thatIface.(*CaveatExpression_Caveat)
  2111  	if !ok {
  2112  		return false
  2113  	}
  2114  	if this == that {
  2115  		return true
  2116  	}
  2117  	if this == nil && that != nil || this != nil && that == nil {
  2118  		return false
  2119  	}
  2120  	if p, q := this.Caveat, that.Caveat; p != q {
  2121  		if p == nil {
  2122  			p = &ContextualizedCaveat{}
  2123  		}
  2124  		if q == nil {
  2125  			q = &ContextualizedCaveat{}
  2126  		}
  2127  		if !p.EqualVT(q) {
  2128  			return false
  2129  		}
  2130  	}
  2131  	return true
  2132  }
  2133  
  2134  func (this *CaveatOperation) EqualVT(that *CaveatOperation) bool {
  2135  	if this == that {
  2136  		return true
  2137  	} else if this == nil || that == nil {
  2138  		return false
  2139  	}
  2140  	if this.Op != that.Op {
  2141  		return false
  2142  	}
  2143  	if len(this.Children) != len(that.Children) {
  2144  		return false
  2145  	}
  2146  	for i, vx := range this.Children {
  2147  		vy := that.Children[i]
  2148  		if p, q := vx, vy; p != q {
  2149  			if p == nil {
  2150  				p = &CaveatExpression{}
  2151  			}
  2152  			if q == nil {
  2153  				q = &CaveatExpression{}
  2154  			}
  2155  			if !p.EqualVT(q) {
  2156  				return false
  2157  			}
  2158  		}
  2159  	}
  2160  	return string(this.unknownFields) == string(that.unknownFields)
  2161  }
  2162  
  2163  func (this *CaveatOperation) EqualMessageVT(thatMsg proto.Message) bool {
  2164  	that, ok := thatMsg.(*CaveatOperation)
  2165  	if !ok {
  2166  		return false
  2167  	}
  2168  	return this.EqualVT(that)
  2169  }
  2170  func (m *RelationTuple) MarshalVT() (dAtA []byte, err error) {
  2171  	if m == nil {
  2172  		return nil, nil
  2173  	}
  2174  	size := m.SizeVT()
  2175  	dAtA = make([]byte, size)
  2176  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2177  	if err != nil {
  2178  		return nil, err
  2179  	}
  2180  	return dAtA[:n], nil
  2181  }
  2182  
  2183  func (m *RelationTuple) MarshalToVT(dAtA []byte) (int, error) {
  2184  	size := m.SizeVT()
  2185  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2186  }
  2187  
  2188  func (m *RelationTuple) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2189  	if m == nil {
  2190  		return 0, nil
  2191  	}
  2192  	i := len(dAtA)
  2193  	_ = i
  2194  	var l int
  2195  	_ = l
  2196  	if m.unknownFields != nil {
  2197  		i -= len(m.unknownFields)
  2198  		copy(dAtA[i:], m.unknownFields)
  2199  	}
  2200  	if m.Caveat != nil {
  2201  		size, err := m.Caveat.MarshalToSizedBufferVT(dAtA[:i])
  2202  		if err != nil {
  2203  			return 0, err
  2204  		}
  2205  		i -= size
  2206  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2207  		i--
  2208  		dAtA[i] = 0x1a
  2209  	}
  2210  	if m.Subject != nil {
  2211  		size, err := m.Subject.MarshalToSizedBufferVT(dAtA[:i])
  2212  		if err != nil {
  2213  			return 0, err
  2214  		}
  2215  		i -= size
  2216  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2217  		i--
  2218  		dAtA[i] = 0x12
  2219  	}
  2220  	if m.ResourceAndRelation != nil {
  2221  		size, err := m.ResourceAndRelation.MarshalToSizedBufferVT(dAtA[:i])
  2222  		if err != nil {
  2223  			return 0, err
  2224  		}
  2225  		i -= size
  2226  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2227  		i--
  2228  		dAtA[i] = 0xa
  2229  	}
  2230  	return len(dAtA) - i, nil
  2231  }
  2232  
  2233  func (m *ContextualizedCaveat) MarshalVT() (dAtA []byte, err error) {
  2234  	if m == nil {
  2235  		return nil, nil
  2236  	}
  2237  	size := m.SizeVT()
  2238  	dAtA = make([]byte, size)
  2239  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2240  	if err != nil {
  2241  		return nil, err
  2242  	}
  2243  	return dAtA[:n], nil
  2244  }
  2245  
  2246  func (m *ContextualizedCaveat) MarshalToVT(dAtA []byte) (int, error) {
  2247  	size := m.SizeVT()
  2248  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2249  }
  2250  
  2251  func (m *ContextualizedCaveat) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2252  	if m == nil {
  2253  		return 0, nil
  2254  	}
  2255  	i := len(dAtA)
  2256  	_ = i
  2257  	var l int
  2258  	_ = l
  2259  	if m.unknownFields != nil {
  2260  		i -= len(m.unknownFields)
  2261  		copy(dAtA[i:], m.unknownFields)
  2262  	}
  2263  	if m.Context != nil {
  2264  		size, err := (*structpb1.Struct)(m.Context).MarshalToSizedBufferVT(dAtA[:i])
  2265  		if err != nil {
  2266  			return 0, err
  2267  		}
  2268  		i -= size
  2269  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2270  		i--
  2271  		dAtA[i] = 0x12
  2272  	}
  2273  	if len(m.CaveatName) > 0 {
  2274  		i -= len(m.CaveatName)
  2275  		copy(dAtA[i:], m.CaveatName)
  2276  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CaveatName)))
  2277  		i--
  2278  		dAtA[i] = 0xa
  2279  	}
  2280  	return len(dAtA) - i, nil
  2281  }
  2282  
  2283  func (m *CaveatDefinition) MarshalVT() (dAtA []byte, err error) {
  2284  	if m == nil {
  2285  		return nil, nil
  2286  	}
  2287  	size := m.SizeVT()
  2288  	dAtA = make([]byte, size)
  2289  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2290  	if err != nil {
  2291  		return nil, err
  2292  	}
  2293  	return dAtA[:n], nil
  2294  }
  2295  
  2296  func (m *CaveatDefinition) MarshalToVT(dAtA []byte) (int, error) {
  2297  	size := m.SizeVT()
  2298  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2299  }
  2300  
  2301  func (m *CaveatDefinition) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2302  	if m == nil {
  2303  		return 0, nil
  2304  	}
  2305  	i := len(dAtA)
  2306  	_ = i
  2307  	var l int
  2308  	_ = l
  2309  	if m.unknownFields != nil {
  2310  		i -= len(m.unknownFields)
  2311  		copy(dAtA[i:], m.unknownFields)
  2312  	}
  2313  	if m.SourcePosition != nil {
  2314  		size, err := m.SourcePosition.MarshalToSizedBufferVT(dAtA[:i])
  2315  		if err != nil {
  2316  			return 0, err
  2317  		}
  2318  		i -= size
  2319  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2320  		i--
  2321  		dAtA[i] = 0x2a
  2322  	}
  2323  	if m.Metadata != nil {
  2324  		size, err := m.Metadata.MarshalToSizedBufferVT(dAtA[:i])
  2325  		if err != nil {
  2326  			return 0, err
  2327  		}
  2328  		i -= size
  2329  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2330  		i--
  2331  		dAtA[i] = 0x22
  2332  	}
  2333  	if len(m.ParameterTypes) > 0 {
  2334  		for k := range m.ParameterTypes {
  2335  			v := m.ParameterTypes[k]
  2336  			baseI := i
  2337  			size, err := v.MarshalToSizedBufferVT(dAtA[:i])
  2338  			if err != nil {
  2339  				return 0, err
  2340  			}
  2341  			i -= size
  2342  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2343  			i--
  2344  			dAtA[i] = 0x12
  2345  			i -= len(k)
  2346  			copy(dAtA[i:], k)
  2347  			i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
  2348  			i--
  2349  			dAtA[i] = 0xa
  2350  			i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
  2351  			i--
  2352  			dAtA[i] = 0x1a
  2353  		}
  2354  	}
  2355  	if len(m.SerializedExpression) > 0 {
  2356  		i -= len(m.SerializedExpression)
  2357  		copy(dAtA[i:], m.SerializedExpression)
  2358  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SerializedExpression)))
  2359  		i--
  2360  		dAtA[i] = 0x12
  2361  	}
  2362  	if len(m.Name) > 0 {
  2363  		i -= len(m.Name)
  2364  		copy(dAtA[i:], m.Name)
  2365  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
  2366  		i--
  2367  		dAtA[i] = 0xa
  2368  	}
  2369  	return len(dAtA) - i, nil
  2370  }
  2371  
  2372  func (m *CaveatTypeReference) MarshalVT() (dAtA []byte, err error) {
  2373  	if m == nil {
  2374  		return nil, nil
  2375  	}
  2376  	size := m.SizeVT()
  2377  	dAtA = make([]byte, size)
  2378  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2379  	if err != nil {
  2380  		return nil, err
  2381  	}
  2382  	return dAtA[:n], nil
  2383  }
  2384  
  2385  func (m *CaveatTypeReference) MarshalToVT(dAtA []byte) (int, error) {
  2386  	size := m.SizeVT()
  2387  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2388  }
  2389  
  2390  func (m *CaveatTypeReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2391  	if m == nil {
  2392  		return 0, nil
  2393  	}
  2394  	i := len(dAtA)
  2395  	_ = i
  2396  	var l int
  2397  	_ = l
  2398  	if m.unknownFields != nil {
  2399  		i -= len(m.unknownFields)
  2400  		copy(dAtA[i:], m.unknownFields)
  2401  	}
  2402  	if len(m.ChildTypes) > 0 {
  2403  		for iNdEx := len(m.ChildTypes) - 1; iNdEx >= 0; iNdEx-- {
  2404  			size, err := m.ChildTypes[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
  2405  			if err != nil {
  2406  				return 0, err
  2407  			}
  2408  			i -= size
  2409  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2410  			i--
  2411  			dAtA[i] = 0x12
  2412  		}
  2413  	}
  2414  	if len(m.TypeName) > 0 {
  2415  		i -= len(m.TypeName)
  2416  		copy(dAtA[i:], m.TypeName)
  2417  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TypeName)))
  2418  		i--
  2419  		dAtA[i] = 0xa
  2420  	}
  2421  	return len(dAtA) - i, nil
  2422  }
  2423  
  2424  func (m *ObjectAndRelation) MarshalVT() (dAtA []byte, err error) {
  2425  	if m == nil {
  2426  		return nil, nil
  2427  	}
  2428  	size := m.SizeVT()
  2429  	dAtA = make([]byte, size)
  2430  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2431  	if err != nil {
  2432  		return nil, err
  2433  	}
  2434  	return dAtA[:n], nil
  2435  }
  2436  
  2437  func (m *ObjectAndRelation) MarshalToVT(dAtA []byte) (int, error) {
  2438  	size := m.SizeVT()
  2439  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2440  }
  2441  
  2442  func (m *ObjectAndRelation) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2443  	if m == nil {
  2444  		return 0, nil
  2445  	}
  2446  	i := len(dAtA)
  2447  	_ = i
  2448  	var l int
  2449  	_ = l
  2450  	if m.unknownFields != nil {
  2451  		i -= len(m.unknownFields)
  2452  		copy(dAtA[i:], m.unknownFields)
  2453  	}
  2454  	if len(m.Relation) > 0 {
  2455  		i -= len(m.Relation)
  2456  		copy(dAtA[i:], m.Relation)
  2457  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Relation)))
  2458  		i--
  2459  		dAtA[i] = 0x1a
  2460  	}
  2461  	if len(m.ObjectId) > 0 {
  2462  		i -= len(m.ObjectId)
  2463  		copy(dAtA[i:], m.ObjectId)
  2464  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ObjectId)))
  2465  		i--
  2466  		dAtA[i] = 0x12
  2467  	}
  2468  	if len(m.Namespace) > 0 {
  2469  		i -= len(m.Namespace)
  2470  		copy(dAtA[i:], m.Namespace)
  2471  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Namespace)))
  2472  		i--
  2473  		dAtA[i] = 0xa
  2474  	}
  2475  	return len(dAtA) - i, nil
  2476  }
  2477  
  2478  func (m *RelationReference) MarshalVT() (dAtA []byte, err error) {
  2479  	if m == nil {
  2480  		return nil, nil
  2481  	}
  2482  	size := m.SizeVT()
  2483  	dAtA = make([]byte, size)
  2484  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2485  	if err != nil {
  2486  		return nil, err
  2487  	}
  2488  	return dAtA[:n], nil
  2489  }
  2490  
  2491  func (m *RelationReference) MarshalToVT(dAtA []byte) (int, error) {
  2492  	size := m.SizeVT()
  2493  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2494  }
  2495  
  2496  func (m *RelationReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2497  	if m == nil {
  2498  		return 0, nil
  2499  	}
  2500  	i := len(dAtA)
  2501  	_ = i
  2502  	var l int
  2503  	_ = l
  2504  	if m.unknownFields != nil {
  2505  		i -= len(m.unknownFields)
  2506  		copy(dAtA[i:], m.unknownFields)
  2507  	}
  2508  	if len(m.Relation) > 0 {
  2509  		i -= len(m.Relation)
  2510  		copy(dAtA[i:], m.Relation)
  2511  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Relation)))
  2512  		i--
  2513  		dAtA[i] = 0x1a
  2514  	}
  2515  	if len(m.Namespace) > 0 {
  2516  		i -= len(m.Namespace)
  2517  		copy(dAtA[i:], m.Namespace)
  2518  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Namespace)))
  2519  		i--
  2520  		dAtA[i] = 0xa
  2521  	}
  2522  	return len(dAtA) - i, nil
  2523  }
  2524  
  2525  func (m *Zookie) MarshalVT() (dAtA []byte, err error) {
  2526  	if m == nil {
  2527  		return nil, nil
  2528  	}
  2529  	size := m.SizeVT()
  2530  	dAtA = make([]byte, size)
  2531  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2532  	if err != nil {
  2533  		return nil, err
  2534  	}
  2535  	return dAtA[:n], nil
  2536  }
  2537  
  2538  func (m *Zookie) MarshalToVT(dAtA []byte) (int, error) {
  2539  	size := m.SizeVT()
  2540  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2541  }
  2542  
  2543  func (m *Zookie) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2544  	if m == nil {
  2545  		return 0, nil
  2546  	}
  2547  	i := len(dAtA)
  2548  	_ = i
  2549  	var l int
  2550  	_ = l
  2551  	if m.unknownFields != nil {
  2552  		i -= len(m.unknownFields)
  2553  		copy(dAtA[i:], m.unknownFields)
  2554  	}
  2555  	if len(m.Token) > 0 {
  2556  		i -= len(m.Token)
  2557  		copy(dAtA[i:], m.Token)
  2558  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Token)))
  2559  		i--
  2560  		dAtA[i] = 0xa
  2561  	}
  2562  	return len(dAtA) - i, nil
  2563  }
  2564  
  2565  func (m *RelationTupleUpdate) MarshalVT() (dAtA []byte, err error) {
  2566  	if m == nil {
  2567  		return nil, nil
  2568  	}
  2569  	size := m.SizeVT()
  2570  	dAtA = make([]byte, size)
  2571  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2572  	if err != nil {
  2573  		return nil, err
  2574  	}
  2575  	return dAtA[:n], nil
  2576  }
  2577  
  2578  func (m *RelationTupleUpdate) MarshalToVT(dAtA []byte) (int, error) {
  2579  	size := m.SizeVT()
  2580  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2581  }
  2582  
  2583  func (m *RelationTupleUpdate) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2584  	if m == nil {
  2585  		return 0, nil
  2586  	}
  2587  	i := len(dAtA)
  2588  	_ = i
  2589  	var l int
  2590  	_ = l
  2591  	if m.unknownFields != nil {
  2592  		i -= len(m.unknownFields)
  2593  		copy(dAtA[i:], m.unknownFields)
  2594  	}
  2595  	if m.Tuple != nil {
  2596  		size, err := m.Tuple.MarshalToSizedBufferVT(dAtA[:i])
  2597  		if err != nil {
  2598  			return 0, err
  2599  		}
  2600  		i -= size
  2601  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2602  		i--
  2603  		dAtA[i] = 0x12
  2604  	}
  2605  	if m.Operation != 0 {
  2606  		i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Operation))
  2607  		i--
  2608  		dAtA[i] = 0x8
  2609  	}
  2610  	return len(dAtA) - i, nil
  2611  }
  2612  
  2613  func (m *RelationTupleTreeNode) MarshalVT() (dAtA []byte, err error) {
  2614  	if m == nil {
  2615  		return nil, nil
  2616  	}
  2617  	size := m.SizeVT()
  2618  	dAtA = make([]byte, size)
  2619  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2620  	if err != nil {
  2621  		return nil, err
  2622  	}
  2623  	return dAtA[:n], nil
  2624  }
  2625  
  2626  func (m *RelationTupleTreeNode) MarshalToVT(dAtA []byte) (int, error) {
  2627  	size := m.SizeVT()
  2628  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2629  }
  2630  
  2631  func (m *RelationTupleTreeNode) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2632  	if m == nil {
  2633  		return 0, nil
  2634  	}
  2635  	i := len(dAtA)
  2636  	_ = i
  2637  	var l int
  2638  	_ = l
  2639  	if m.unknownFields != nil {
  2640  		i -= len(m.unknownFields)
  2641  		copy(dAtA[i:], m.unknownFields)
  2642  	}
  2643  	if vtmsg, ok := m.NodeType.(interface {
  2644  		MarshalToSizedBufferVT([]byte) (int, error)
  2645  	}); ok {
  2646  		size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
  2647  		if err != nil {
  2648  			return 0, err
  2649  		}
  2650  		i -= size
  2651  	}
  2652  	if m.CaveatExpression != nil {
  2653  		size, err := m.CaveatExpression.MarshalToSizedBufferVT(dAtA[:i])
  2654  		if err != nil {
  2655  			return 0, err
  2656  		}
  2657  		i -= size
  2658  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2659  		i--
  2660  		dAtA[i] = 0x22
  2661  	}
  2662  	if m.Expanded != nil {
  2663  		size, err := m.Expanded.MarshalToSizedBufferVT(dAtA[:i])
  2664  		if err != nil {
  2665  			return 0, err
  2666  		}
  2667  		i -= size
  2668  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2669  		i--
  2670  		dAtA[i] = 0x1a
  2671  	}
  2672  	return len(dAtA) - i, nil
  2673  }
  2674  
  2675  func (m *RelationTupleTreeNode_IntermediateNode) MarshalToVT(dAtA []byte) (int, error) {
  2676  	size := m.SizeVT()
  2677  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2678  }
  2679  
  2680  func (m *RelationTupleTreeNode_IntermediateNode) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2681  	i := len(dAtA)
  2682  	if m.IntermediateNode != nil {
  2683  		size, err := m.IntermediateNode.MarshalToSizedBufferVT(dAtA[:i])
  2684  		if err != nil {
  2685  			return 0, err
  2686  		}
  2687  		i -= size
  2688  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2689  		i--
  2690  		dAtA[i] = 0xa
  2691  	}
  2692  	return len(dAtA) - i, nil
  2693  }
  2694  func (m *RelationTupleTreeNode_LeafNode) MarshalToVT(dAtA []byte) (int, error) {
  2695  	size := m.SizeVT()
  2696  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2697  }
  2698  
  2699  func (m *RelationTupleTreeNode_LeafNode) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2700  	i := len(dAtA)
  2701  	if m.LeafNode != nil {
  2702  		size, err := m.LeafNode.MarshalToSizedBufferVT(dAtA[:i])
  2703  		if err != nil {
  2704  			return 0, err
  2705  		}
  2706  		i -= size
  2707  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2708  		i--
  2709  		dAtA[i] = 0x12
  2710  	}
  2711  	return len(dAtA) - i, nil
  2712  }
  2713  func (m *SetOperationUserset) MarshalVT() (dAtA []byte, err error) {
  2714  	if m == nil {
  2715  		return nil, nil
  2716  	}
  2717  	size := m.SizeVT()
  2718  	dAtA = make([]byte, size)
  2719  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2720  	if err != nil {
  2721  		return nil, err
  2722  	}
  2723  	return dAtA[:n], nil
  2724  }
  2725  
  2726  func (m *SetOperationUserset) MarshalToVT(dAtA []byte) (int, error) {
  2727  	size := m.SizeVT()
  2728  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2729  }
  2730  
  2731  func (m *SetOperationUserset) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2732  	if m == nil {
  2733  		return 0, nil
  2734  	}
  2735  	i := len(dAtA)
  2736  	_ = i
  2737  	var l int
  2738  	_ = l
  2739  	if m.unknownFields != nil {
  2740  		i -= len(m.unknownFields)
  2741  		copy(dAtA[i:], m.unknownFields)
  2742  	}
  2743  	if len(m.ChildNodes) > 0 {
  2744  		for iNdEx := len(m.ChildNodes) - 1; iNdEx >= 0; iNdEx-- {
  2745  			size, err := m.ChildNodes[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
  2746  			if err != nil {
  2747  				return 0, err
  2748  			}
  2749  			i -= size
  2750  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2751  			i--
  2752  			dAtA[i] = 0x12
  2753  		}
  2754  	}
  2755  	if m.Operation != 0 {
  2756  		i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Operation))
  2757  		i--
  2758  		dAtA[i] = 0x8
  2759  	}
  2760  	return len(dAtA) - i, nil
  2761  }
  2762  
  2763  func (m *DirectSubject) MarshalVT() (dAtA []byte, err error) {
  2764  	if m == nil {
  2765  		return nil, nil
  2766  	}
  2767  	size := m.SizeVT()
  2768  	dAtA = make([]byte, size)
  2769  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2770  	if err != nil {
  2771  		return nil, err
  2772  	}
  2773  	return dAtA[:n], nil
  2774  }
  2775  
  2776  func (m *DirectSubject) MarshalToVT(dAtA []byte) (int, error) {
  2777  	size := m.SizeVT()
  2778  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2779  }
  2780  
  2781  func (m *DirectSubject) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2782  	if m == nil {
  2783  		return 0, nil
  2784  	}
  2785  	i := len(dAtA)
  2786  	_ = i
  2787  	var l int
  2788  	_ = l
  2789  	if m.unknownFields != nil {
  2790  		i -= len(m.unknownFields)
  2791  		copy(dAtA[i:], m.unknownFields)
  2792  	}
  2793  	if m.CaveatExpression != nil {
  2794  		size, err := m.CaveatExpression.MarshalToSizedBufferVT(dAtA[:i])
  2795  		if err != nil {
  2796  			return 0, err
  2797  		}
  2798  		i -= size
  2799  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2800  		i--
  2801  		dAtA[i] = 0x12
  2802  	}
  2803  	if m.Subject != nil {
  2804  		size, err := m.Subject.MarshalToSizedBufferVT(dAtA[:i])
  2805  		if err != nil {
  2806  			return 0, err
  2807  		}
  2808  		i -= size
  2809  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2810  		i--
  2811  		dAtA[i] = 0xa
  2812  	}
  2813  	return len(dAtA) - i, nil
  2814  }
  2815  
  2816  func (m *DirectSubjects) MarshalVT() (dAtA []byte, err error) {
  2817  	if m == nil {
  2818  		return nil, nil
  2819  	}
  2820  	size := m.SizeVT()
  2821  	dAtA = make([]byte, size)
  2822  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2823  	if err != nil {
  2824  		return nil, err
  2825  	}
  2826  	return dAtA[:n], nil
  2827  }
  2828  
  2829  func (m *DirectSubjects) MarshalToVT(dAtA []byte) (int, error) {
  2830  	size := m.SizeVT()
  2831  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2832  }
  2833  
  2834  func (m *DirectSubjects) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2835  	if m == nil {
  2836  		return 0, nil
  2837  	}
  2838  	i := len(dAtA)
  2839  	_ = i
  2840  	var l int
  2841  	_ = l
  2842  	if m.unknownFields != nil {
  2843  		i -= len(m.unknownFields)
  2844  		copy(dAtA[i:], m.unknownFields)
  2845  	}
  2846  	if len(m.Subjects) > 0 {
  2847  		for iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {
  2848  			size, err := m.Subjects[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
  2849  			if err != nil {
  2850  				return 0, err
  2851  			}
  2852  			i -= size
  2853  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2854  			i--
  2855  			dAtA[i] = 0xa
  2856  		}
  2857  	}
  2858  	return len(dAtA) - i, nil
  2859  }
  2860  
  2861  func (m *Metadata) MarshalVT() (dAtA []byte, err error) {
  2862  	if m == nil {
  2863  		return nil, nil
  2864  	}
  2865  	size := m.SizeVT()
  2866  	dAtA = make([]byte, size)
  2867  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2868  	if err != nil {
  2869  		return nil, err
  2870  	}
  2871  	return dAtA[:n], nil
  2872  }
  2873  
  2874  func (m *Metadata) MarshalToVT(dAtA []byte) (int, error) {
  2875  	size := m.SizeVT()
  2876  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2877  }
  2878  
  2879  func (m *Metadata) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2880  	if m == nil {
  2881  		return 0, nil
  2882  	}
  2883  	i := len(dAtA)
  2884  	_ = i
  2885  	var l int
  2886  	_ = l
  2887  	if m.unknownFields != nil {
  2888  		i -= len(m.unknownFields)
  2889  		copy(dAtA[i:], m.unknownFields)
  2890  	}
  2891  	if len(m.MetadataMessage) > 0 {
  2892  		for iNdEx := len(m.MetadataMessage) - 1; iNdEx >= 0; iNdEx-- {
  2893  			size, err := (*anypb1.Any)(m.MetadataMessage[iNdEx]).MarshalToSizedBufferVT(dAtA[:i])
  2894  			if err != nil {
  2895  				return 0, err
  2896  			}
  2897  			i -= size
  2898  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2899  			i--
  2900  			dAtA[i] = 0xa
  2901  		}
  2902  	}
  2903  	return len(dAtA) - i, nil
  2904  }
  2905  
  2906  func (m *NamespaceDefinition) MarshalVT() (dAtA []byte, err error) {
  2907  	if m == nil {
  2908  		return nil, nil
  2909  	}
  2910  	size := m.SizeVT()
  2911  	dAtA = make([]byte, size)
  2912  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2913  	if err != nil {
  2914  		return nil, err
  2915  	}
  2916  	return dAtA[:n], nil
  2917  }
  2918  
  2919  func (m *NamespaceDefinition) MarshalToVT(dAtA []byte) (int, error) {
  2920  	size := m.SizeVT()
  2921  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2922  }
  2923  
  2924  func (m *NamespaceDefinition) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2925  	if m == nil {
  2926  		return 0, nil
  2927  	}
  2928  	i := len(dAtA)
  2929  	_ = i
  2930  	var l int
  2931  	_ = l
  2932  	if m.unknownFields != nil {
  2933  		i -= len(m.unknownFields)
  2934  		copy(dAtA[i:], m.unknownFields)
  2935  	}
  2936  	if m.SourcePosition != nil {
  2937  		size, err := m.SourcePosition.MarshalToSizedBufferVT(dAtA[:i])
  2938  		if err != nil {
  2939  			return 0, err
  2940  		}
  2941  		i -= size
  2942  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2943  		i--
  2944  		dAtA[i] = 0x22
  2945  	}
  2946  	if m.Metadata != nil {
  2947  		size, err := m.Metadata.MarshalToSizedBufferVT(dAtA[:i])
  2948  		if err != nil {
  2949  			return 0, err
  2950  		}
  2951  		i -= size
  2952  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2953  		i--
  2954  		dAtA[i] = 0x1a
  2955  	}
  2956  	if len(m.Relation) > 0 {
  2957  		for iNdEx := len(m.Relation) - 1; iNdEx >= 0; iNdEx-- {
  2958  			size, err := m.Relation[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
  2959  			if err != nil {
  2960  				return 0, err
  2961  			}
  2962  			i -= size
  2963  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  2964  			i--
  2965  			dAtA[i] = 0x12
  2966  		}
  2967  	}
  2968  	if len(m.Name) > 0 {
  2969  		i -= len(m.Name)
  2970  		copy(dAtA[i:], m.Name)
  2971  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
  2972  		i--
  2973  		dAtA[i] = 0xa
  2974  	}
  2975  	return len(dAtA) - i, nil
  2976  }
  2977  
  2978  func (m *Relation) MarshalVT() (dAtA []byte, err error) {
  2979  	if m == nil {
  2980  		return nil, nil
  2981  	}
  2982  	size := m.SizeVT()
  2983  	dAtA = make([]byte, size)
  2984  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  2985  	if err != nil {
  2986  		return nil, err
  2987  	}
  2988  	return dAtA[:n], nil
  2989  }
  2990  
  2991  func (m *Relation) MarshalToVT(dAtA []byte) (int, error) {
  2992  	size := m.SizeVT()
  2993  	return m.MarshalToSizedBufferVT(dAtA[:size])
  2994  }
  2995  
  2996  func (m *Relation) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  2997  	if m == nil {
  2998  		return 0, nil
  2999  	}
  3000  	i := len(dAtA)
  3001  	_ = i
  3002  	var l int
  3003  	_ = l
  3004  	if m.unknownFields != nil {
  3005  		i -= len(m.unknownFields)
  3006  		copy(dAtA[i:], m.unknownFields)
  3007  	}
  3008  	if len(m.CanonicalCacheKey) > 0 {
  3009  		i -= len(m.CanonicalCacheKey)
  3010  		copy(dAtA[i:], m.CanonicalCacheKey)
  3011  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CanonicalCacheKey)))
  3012  		i--
  3013  		dAtA[i] = 0x3a
  3014  	}
  3015  	if len(m.AliasingRelation) > 0 {
  3016  		i -= len(m.AliasingRelation)
  3017  		copy(dAtA[i:], m.AliasingRelation)
  3018  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AliasingRelation)))
  3019  		i--
  3020  		dAtA[i] = 0x32
  3021  	}
  3022  	if m.SourcePosition != nil {
  3023  		size, err := m.SourcePosition.MarshalToSizedBufferVT(dAtA[:i])
  3024  		if err != nil {
  3025  			return 0, err
  3026  		}
  3027  		i -= size
  3028  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3029  		i--
  3030  		dAtA[i] = 0x2a
  3031  	}
  3032  	if m.Metadata != nil {
  3033  		size, err := m.Metadata.MarshalToSizedBufferVT(dAtA[:i])
  3034  		if err != nil {
  3035  			return 0, err
  3036  		}
  3037  		i -= size
  3038  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3039  		i--
  3040  		dAtA[i] = 0x22
  3041  	}
  3042  	if m.TypeInformation != nil {
  3043  		size, err := m.TypeInformation.MarshalToSizedBufferVT(dAtA[:i])
  3044  		if err != nil {
  3045  			return 0, err
  3046  		}
  3047  		i -= size
  3048  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3049  		i--
  3050  		dAtA[i] = 0x1a
  3051  	}
  3052  	if m.UsersetRewrite != nil {
  3053  		size, err := m.UsersetRewrite.MarshalToSizedBufferVT(dAtA[:i])
  3054  		if err != nil {
  3055  			return 0, err
  3056  		}
  3057  		i -= size
  3058  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3059  		i--
  3060  		dAtA[i] = 0x12
  3061  	}
  3062  	if len(m.Name) > 0 {
  3063  		i -= len(m.Name)
  3064  		copy(dAtA[i:], m.Name)
  3065  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
  3066  		i--
  3067  		dAtA[i] = 0xa
  3068  	}
  3069  	return len(dAtA) - i, nil
  3070  }
  3071  
  3072  func (m *ReachabilityGraph) MarshalVT() (dAtA []byte, err error) {
  3073  	if m == nil {
  3074  		return nil, nil
  3075  	}
  3076  	size := m.SizeVT()
  3077  	dAtA = make([]byte, size)
  3078  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3079  	if err != nil {
  3080  		return nil, err
  3081  	}
  3082  	return dAtA[:n], nil
  3083  }
  3084  
  3085  func (m *ReachabilityGraph) MarshalToVT(dAtA []byte) (int, error) {
  3086  	size := m.SizeVT()
  3087  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3088  }
  3089  
  3090  func (m *ReachabilityGraph) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3091  	if m == nil {
  3092  		return 0, nil
  3093  	}
  3094  	i := len(dAtA)
  3095  	_ = i
  3096  	var l int
  3097  	_ = l
  3098  	if m.unknownFields != nil {
  3099  		i -= len(m.unknownFields)
  3100  		copy(dAtA[i:], m.unknownFields)
  3101  	}
  3102  	if len(m.EntrypointsBySubjectRelation) > 0 {
  3103  		for k := range m.EntrypointsBySubjectRelation {
  3104  			v := m.EntrypointsBySubjectRelation[k]
  3105  			baseI := i
  3106  			size, err := v.MarshalToSizedBufferVT(dAtA[:i])
  3107  			if err != nil {
  3108  				return 0, err
  3109  			}
  3110  			i -= size
  3111  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3112  			i--
  3113  			dAtA[i] = 0x12
  3114  			i -= len(k)
  3115  			copy(dAtA[i:], k)
  3116  			i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
  3117  			i--
  3118  			dAtA[i] = 0xa
  3119  			i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
  3120  			i--
  3121  			dAtA[i] = 0x12
  3122  		}
  3123  	}
  3124  	if len(m.EntrypointsBySubjectType) > 0 {
  3125  		for k := range m.EntrypointsBySubjectType {
  3126  			v := m.EntrypointsBySubjectType[k]
  3127  			baseI := i
  3128  			size, err := v.MarshalToSizedBufferVT(dAtA[:i])
  3129  			if err != nil {
  3130  				return 0, err
  3131  			}
  3132  			i -= size
  3133  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3134  			i--
  3135  			dAtA[i] = 0x12
  3136  			i -= len(k)
  3137  			copy(dAtA[i:], k)
  3138  			i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
  3139  			i--
  3140  			dAtA[i] = 0xa
  3141  			i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
  3142  			i--
  3143  			dAtA[i] = 0xa
  3144  		}
  3145  	}
  3146  	return len(dAtA) - i, nil
  3147  }
  3148  
  3149  func (m *ReachabilityEntrypoints) MarshalVT() (dAtA []byte, err error) {
  3150  	if m == nil {
  3151  		return nil, nil
  3152  	}
  3153  	size := m.SizeVT()
  3154  	dAtA = make([]byte, size)
  3155  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3156  	if err != nil {
  3157  		return nil, err
  3158  	}
  3159  	return dAtA[:n], nil
  3160  }
  3161  
  3162  func (m *ReachabilityEntrypoints) MarshalToVT(dAtA []byte) (int, error) {
  3163  	size := m.SizeVT()
  3164  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3165  }
  3166  
  3167  func (m *ReachabilityEntrypoints) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3168  	if m == nil {
  3169  		return 0, nil
  3170  	}
  3171  	i := len(dAtA)
  3172  	_ = i
  3173  	var l int
  3174  	_ = l
  3175  	if m.unknownFields != nil {
  3176  		i -= len(m.unknownFields)
  3177  		copy(dAtA[i:], m.unknownFields)
  3178  	}
  3179  	if m.SubjectRelation != nil {
  3180  		size, err := m.SubjectRelation.MarshalToSizedBufferVT(dAtA[:i])
  3181  		if err != nil {
  3182  			return 0, err
  3183  		}
  3184  		i -= size
  3185  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3186  		i--
  3187  		dAtA[i] = 0x1a
  3188  	}
  3189  	if len(m.SubjectType) > 0 {
  3190  		i -= len(m.SubjectType)
  3191  		copy(dAtA[i:], m.SubjectType)
  3192  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SubjectType)))
  3193  		i--
  3194  		dAtA[i] = 0x12
  3195  	}
  3196  	if len(m.Entrypoints) > 0 {
  3197  		for iNdEx := len(m.Entrypoints) - 1; iNdEx >= 0; iNdEx-- {
  3198  			size, err := m.Entrypoints[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
  3199  			if err != nil {
  3200  				return 0, err
  3201  			}
  3202  			i -= size
  3203  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3204  			i--
  3205  			dAtA[i] = 0xa
  3206  		}
  3207  	}
  3208  	return len(dAtA) - i, nil
  3209  }
  3210  
  3211  func (m *ReachabilityEntrypoint) MarshalVT() (dAtA []byte, err error) {
  3212  	if m == nil {
  3213  		return nil, nil
  3214  	}
  3215  	size := m.SizeVT()
  3216  	dAtA = make([]byte, size)
  3217  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3218  	if err != nil {
  3219  		return nil, err
  3220  	}
  3221  	return dAtA[:n], nil
  3222  }
  3223  
  3224  func (m *ReachabilityEntrypoint) MarshalToVT(dAtA []byte) (int, error) {
  3225  	size := m.SizeVT()
  3226  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3227  }
  3228  
  3229  func (m *ReachabilityEntrypoint) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3230  	if m == nil {
  3231  		return 0, nil
  3232  	}
  3233  	i := len(dAtA)
  3234  	_ = i
  3235  	var l int
  3236  	_ = l
  3237  	if m.unknownFields != nil {
  3238  		i -= len(m.unknownFields)
  3239  		copy(dAtA[i:], m.unknownFields)
  3240  	}
  3241  	if len(m.TuplesetRelation) > 0 {
  3242  		i -= len(m.TuplesetRelation)
  3243  		copy(dAtA[i:], m.TuplesetRelation)
  3244  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TuplesetRelation)))
  3245  		i--
  3246  		dAtA[i] = 0x2a
  3247  	}
  3248  	if m.ResultStatus != 0 {
  3249  		i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ResultStatus))
  3250  		i--
  3251  		dAtA[i] = 0x20
  3252  	}
  3253  	if m.TargetRelation != nil {
  3254  		size, err := m.TargetRelation.MarshalToSizedBufferVT(dAtA[:i])
  3255  		if err != nil {
  3256  			return 0, err
  3257  		}
  3258  		i -= size
  3259  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3260  		i--
  3261  		dAtA[i] = 0x12
  3262  	}
  3263  	if m.Kind != 0 {
  3264  		i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Kind))
  3265  		i--
  3266  		dAtA[i] = 0x8
  3267  	}
  3268  	return len(dAtA) - i, nil
  3269  }
  3270  
  3271  func (m *TypeInformation) MarshalVT() (dAtA []byte, err error) {
  3272  	if m == nil {
  3273  		return nil, nil
  3274  	}
  3275  	size := m.SizeVT()
  3276  	dAtA = make([]byte, size)
  3277  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3278  	if err != nil {
  3279  		return nil, err
  3280  	}
  3281  	return dAtA[:n], nil
  3282  }
  3283  
  3284  func (m *TypeInformation) MarshalToVT(dAtA []byte) (int, error) {
  3285  	size := m.SizeVT()
  3286  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3287  }
  3288  
  3289  func (m *TypeInformation) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3290  	if m == nil {
  3291  		return 0, nil
  3292  	}
  3293  	i := len(dAtA)
  3294  	_ = i
  3295  	var l int
  3296  	_ = l
  3297  	if m.unknownFields != nil {
  3298  		i -= len(m.unknownFields)
  3299  		copy(dAtA[i:], m.unknownFields)
  3300  	}
  3301  	if len(m.AllowedDirectRelations) > 0 {
  3302  		for iNdEx := len(m.AllowedDirectRelations) - 1; iNdEx >= 0; iNdEx-- {
  3303  			size, err := m.AllowedDirectRelations[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
  3304  			if err != nil {
  3305  				return 0, err
  3306  			}
  3307  			i -= size
  3308  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3309  			i--
  3310  			dAtA[i] = 0xa
  3311  		}
  3312  	}
  3313  	return len(dAtA) - i, nil
  3314  }
  3315  
  3316  func (m *AllowedRelation_PublicWildcard) MarshalVT() (dAtA []byte, err error) {
  3317  	if m == nil {
  3318  		return nil, nil
  3319  	}
  3320  	size := m.SizeVT()
  3321  	dAtA = make([]byte, size)
  3322  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3323  	if err != nil {
  3324  		return nil, err
  3325  	}
  3326  	return dAtA[:n], nil
  3327  }
  3328  
  3329  func (m *AllowedRelation_PublicWildcard) MarshalToVT(dAtA []byte) (int, error) {
  3330  	size := m.SizeVT()
  3331  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3332  }
  3333  
  3334  func (m *AllowedRelation_PublicWildcard) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3335  	if m == nil {
  3336  		return 0, nil
  3337  	}
  3338  	i := len(dAtA)
  3339  	_ = i
  3340  	var l int
  3341  	_ = l
  3342  	if m.unknownFields != nil {
  3343  		i -= len(m.unknownFields)
  3344  		copy(dAtA[i:], m.unknownFields)
  3345  	}
  3346  	return len(dAtA) - i, nil
  3347  }
  3348  
  3349  func (m *AllowedRelation) MarshalVT() (dAtA []byte, err error) {
  3350  	if m == nil {
  3351  		return nil, nil
  3352  	}
  3353  	size := m.SizeVT()
  3354  	dAtA = make([]byte, size)
  3355  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3356  	if err != nil {
  3357  		return nil, err
  3358  	}
  3359  	return dAtA[:n], nil
  3360  }
  3361  
  3362  func (m *AllowedRelation) MarshalToVT(dAtA []byte) (int, error) {
  3363  	size := m.SizeVT()
  3364  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3365  }
  3366  
  3367  func (m *AllowedRelation) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3368  	if m == nil {
  3369  		return 0, nil
  3370  	}
  3371  	i := len(dAtA)
  3372  	_ = i
  3373  	var l int
  3374  	_ = l
  3375  	if m.unknownFields != nil {
  3376  		i -= len(m.unknownFields)
  3377  		copy(dAtA[i:], m.unknownFields)
  3378  	}
  3379  	if vtmsg, ok := m.RelationOrWildcard.(interface {
  3380  		MarshalToSizedBufferVT([]byte) (int, error)
  3381  	}); ok {
  3382  		size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
  3383  		if err != nil {
  3384  			return 0, err
  3385  		}
  3386  		i -= size
  3387  	}
  3388  	if m.RequiredCaveat != nil {
  3389  		size, err := m.RequiredCaveat.MarshalToSizedBufferVT(dAtA[:i])
  3390  		if err != nil {
  3391  			return 0, err
  3392  		}
  3393  		i -= size
  3394  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3395  		i--
  3396  		dAtA[i] = 0x32
  3397  	}
  3398  	if m.SourcePosition != nil {
  3399  		size, err := m.SourcePosition.MarshalToSizedBufferVT(dAtA[:i])
  3400  		if err != nil {
  3401  			return 0, err
  3402  		}
  3403  		i -= size
  3404  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3405  		i--
  3406  		dAtA[i] = 0x2a
  3407  	}
  3408  	if len(m.Namespace) > 0 {
  3409  		i -= len(m.Namespace)
  3410  		copy(dAtA[i:], m.Namespace)
  3411  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Namespace)))
  3412  		i--
  3413  		dAtA[i] = 0xa
  3414  	}
  3415  	return len(dAtA) - i, nil
  3416  }
  3417  
  3418  func (m *AllowedRelation_Relation) MarshalToVT(dAtA []byte) (int, error) {
  3419  	size := m.SizeVT()
  3420  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3421  }
  3422  
  3423  func (m *AllowedRelation_Relation) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3424  	i := len(dAtA)
  3425  	i -= len(m.Relation)
  3426  	copy(dAtA[i:], m.Relation)
  3427  	i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Relation)))
  3428  	i--
  3429  	dAtA[i] = 0x1a
  3430  	return len(dAtA) - i, nil
  3431  }
  3432  func (m *AllowedRelation_PublicWildcard_) MarshalToVT(dAtA []byte) (int, error) {
  3433  	size := m.SizeVT()
  3434  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3435  }
  3436  
  3437  func (m *AllowedRelation_PublicWildcard_) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3438  	i := len(dAtA)
  3439  	if m.PublicWildcard != nil {
  3440  		size, err := m.PublicWildcard.MarshalToSizedBufferVT(dAtA[:i])
  3441  		if err != nil {
  3442  			return 0, err
  3443  		}
  3444  		i -= size
  3445  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3446  		i--
  3447  		dAtA[i] = 0x22
  3448  	}
  3449  	return len(dAtA) - i, nil
  3450  }
  3451  func (m *AllowedCaveat) MarshalVT() (dAtA []byte, err error) {
  3452  	if m == nil {
  3453  		return nil, nil
  3454  	}
  3455  	size := m.SizeVT()
  3456  	dAtA = make([]byte, size)
  3457  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3458  	if err != nil {
  3459  		return nil, err
  3460  	}
  3461  	return dAtA[:n], nil
  3462  }
  3463  
  3464  func (m *AllowedCaveat) MarshalToVT(dAtA []byte) (int, error) {
  3465  	size := m.SizeVT()
  3466  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3467  }
  3468  
  3469  func (m *AllowedCaveat) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3470  	if m == nil {
  3471  		return 0, nil
  3472  	}
  3473  	i := len(dAtA)
  3474  	_ = i
  3475  	var l int
  3476  	_ = l
  3477  	if m.unknownFields != nil {
  3478  		i -= len(m.unknownFields)
  3479  		copy(dAtA[i:], m.unknownFields)
  3480  	}
  3481  	if len(m.CaveatName) > 0 {
  3482  		i -= len(m.CaveatName)
  3483  		copy(dAtA[i:], m.CaveatName)
  3484  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CaveatName)))
  3485  		i--
  3486  		dAtA[i] = 0xa
  3487  	}
  3488  	return len(dAtA) - i, nil
  3489  }
  3490  
  3491  func (m *UsersetRewrite) MarshalVT() (dAtA []byte, err error) {
  3492  	if m == nil {
  3493  		return nil, nil
  3494  	}
  3495  	size := m.SizeVT()
  3496  	dAtA = make([]byte, size)
  3497  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3498  	if err != nil {
  3499  		return nil, err
  3500  	}
  3501  	return dAtA[:n], nil
  3502  }
  3503  
  3504  func (m *UsersetRewrite) MarshalToVT(dAtA []byte) (int, error) {
  3505  	size := m.SizeVT()
  3506  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3507  }
  3508  
  3509  func (m *UsersetRewrite) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3510  	if m == nil {
  3511  		return 0, nil
  3512  	}
  3513  	i := len(dAtA)
  3514  	_ = i
  3515  	var l int
  3516  	_ = l
  3517  	if m.unknownFields != nil {
  3518  		i -= len(m.unknownFields)
  3519  		copy(dAtA[i:], m.unknownFields)
  3520  	}
  3521  	if vtmsg, ok := m.RewriteOperation.(interface {
  3522  		MarshalToSizedBufferVT([]byte) (int, error)
  3523  	}); ok {
  3524  		size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
  3525  		if err != nil {
  3526  			return 0, err
  3527  		}
  3528  		i -= size
  3529  	}
  3530  	if m.SourcePosition != nil {
  3531  		size, err := m.SourcePosition.MarshalToSizedBufferVT(dAtA[:i])
  3532  		if err != nil {
  3533  			return 0, err
  3534  		}
  3535  		i -= size
  3536  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3537  		i--
  3538  		dAtA[i] = 0x22
  3539  	}
  3540  	return len(dAtA) - i, nil
  3541  }
  3542  
  3543  func (m *UsersetRewrite_Union) MarshalToVT(dAtA []byte) (int, error) {
  3544  	size := m.SizeVT()
  3545  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3546  }
  3547  
  3548  func (m *UsersetRewrite_Union) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3549  	i := len(dAtA)
  3550  	if m.Union != nil {
  3551  		size, err := m.Union.MarshalToSizedBufferVT(dAtA[:i])
  3552  		if err != nil {
  3553  			return 0, err
  3554  		}
  3555  		i -= size
  3556  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3557  		i--
  3558  		dAtA[i] = 0xa
  3559  	}
  3560  	return len(dAtA) - i, nil
  3561  }
  3562  func (m *UsersetRewrite_Intersection) MarshalToVT(dAtA []byte) (int, error) {
  3563  	size := m.SizeVT()
  3564  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3565  }
  3566  
  3567  func (m *UsersetRewrite_Intersection) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3568  	i := len(dAtA)
  3569  	if m.Intersection != nil {
  3570  		size, err := m.Intersection.MarshalToSizedBufferVT(dAtA[:i])
  3571  		if err != nil {
  3572  			return 0, err
  3573  		}
  3574  		i -= size
  3575  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3576  		i--
  3577  		dAtA[i] = 0x12
  3578  	}
  3579  	return len(dAtA) - i, nil
  3580  }
  3581  func (m *UsersetRewrite_Exclusion) MarshalToVT(dAtA []byte) (int, error) {
  3582  	size := m.SizeVT()
  3583  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3584  }
  3585  
  3586  func (m *UsersetRewrite_Exclusion) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3587  	i := len(dAtA)
  3588  	if m.Exclusion != nil {
  3589  		size, err := m.Exclusion.MarshalToSizedBufferVT(dAtA[:i])
  3590  		if err != nil {
  3591  			return 0, err
  3592  		}
  3593  		i -= size
  3594  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3595  		i--
  3596  		dAtA[i] = 0x1a
  3597  	}
  3598  	return len(dAtA) - i, nil
  3599  }
  3600  func (m *SetOperation_Child_This) MarshalVT() (dAtA []byte, err error) {
  3601  	if m == nil {
  3602  		return nil, nil
  3603  	}
  3604  	size := m.SizeVT()
  3605  	dAtA = make([]byte, size)
  3606  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3607  	if err != nil {
  3608  		return nil, err
  3609  	}
  3610  	return dAtA[:n], nil
  3611  }
  3612  
  3613  func (m *SetOperation_Child_This) MarshalToVT(dAtA []byte) (int, error) {
  3614  	size := m.SizeVT()
  3615  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3616  }
  3617  
  3618  func (m *SetOperation_Child_This) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3619  	if m == nil {
  3620  		return 0, nil
  3621  	}
  3622  	i := len(dAtA)
  3623  	_ = i
  3624  	var l int
  3625  	_ = l
  3626  	if m.unknownFields != nil {
  3627  		i -= len(m.unknownFields)
  3628  		copy(dAtA[i:], m.unknownFields)
  3629  	}
  3630  	return len(dAtA) - i, nil
  3631  }
  3632  
  3633  func (m *SetOperation_Child_Nil) MarshalVT() (dAtA []byte, err error) {
  3634  	if m == nil {
  3635  		return nil, nil
  3636  	}
  3637  	size := m.SizeVT()
  3638  	dAtA = make([]byte, size)
  3639  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3640  	if err != nil {
  3641  		return nil, err
  3642  	}
  3643  	return dAtA[:n], nil
  3644  }
  3645  
  3646  func (m *SetOperation_Child_Nil) MarshalToVT(dAtA []byte) (int, error) {
  3647  	size := m.SizeVT()
  3648  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3649  }
  3650  
  3651  func (m *SetOperation_Child_Nil) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3652  	if m == nil {
  3653  		return 0, nil
  3654  	}
  3655  	i := len(dAtA)
  3656  	_ = i
  3657  	var l int
  3658  	_ = l
  3659  	if m.unknownFields != nil {
  3660  		i -= len(m.unknownFields)
  3661  		copy(dAtA[i:], m.unknownFields)
  3662  	}
  3663  	return len(dAtA) - i, nil
  3664  }
  3665  
  3666  func (m *SetOperation_Child) MarshalVT() (dAtA []byte, err error) {
  3667  	if m == nil {
  3668  		return nil, nil
  3669  	}
  3670  	size := m.SizeVT()
  3671  	dAtA = make([]byte, size)
  3672  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3673  	if err != nil {
  3674  		return nil, err
  3675  	}
  3676  	return dAtA[:n], nil
  3677  }
  3678  
  3679  func (m *SetOperation_Child) MarshalToVT(dAtA []byte) (int, error) {
  3680  	size := m.SizeVT()
  3681  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3682  }
  3683  
  3684  func (m *SetOperation_Child) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3685  	if m == nil {
  3686  		return 0, nil
  3687  	}
  3688  	i := len(dAtA)
  3689  	_ = i
  3690  	var l int
  3691  	_ = l
  3692  	if m.unknownFields != nil {
  3693  		i -= len(m.unknownFields)
  3694  		copy(dAtA[i:], m.unknownFields)
  3695  	}
  3696  	if vtmsg, ok := m.ChildType.(interface {
  3697  		MarshalToSizedBufferVT([]byte) (int, error)
  3698  	}); ok {
  3699  		size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
  3700  		if err != nil {
  3701  			return 0, err
  3702  		}
  3703  		i -= size
  3704  	}
  3705  	if len(m.OperationPath) > 0 {
  3706  		var pksize2 int
  3707  		for _, num := range m.OperationPath {
  3708  			pksize2 += protohelpers.SizeOfVarint(uint64(num))
  3709  		}
  3710  		i -= pksize2
  3711  		j1 := i
  3712  		for _, num := range m.OperationPath {
  3713  			for num >= 1<<7 {
  3714  				dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
  3715  				num >>= 7
  3716  				j1++
  3717  			}
  3718  			dAtA[j1] = uint8(num)
  3719  			j1++
  3720  		}
  3721  		i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2))
  3722  		i--
  3723  		dAtA[i] = 0x3a
  3724  	}
  3725  	if m.SourcePosition != nil {
  3726  		size, err := m.SourcePosition.MarshalToSizedBufferVT(dAtA[:i])
  3727  		if err != nil {
  3728  			return 0, err
  3729  		}
  3730  		i -= size
  3731  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3732  		i--
  3733  		dAtA[i] = 0x2a
  3734  	}
  3735  	return len(dAtA) - i, nil
  3736  }
  3737  
  3738  func (m *SetOperation_Child_XThis) MarshalToVT(dAtA []byte) (int, error) {
  3739  	size := m.SizeVT()
  3740  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3741  }
  3742  
  3743  func (m *SetOperation_Child_XThis) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3744  	i := len(dAtA)
  3745  	if m.XThis != nil {
  3746  		size, err := m.XThis.MarshalToSizedBufferVT(dAtA[:i])
  3747  		if err != nil {
  3748  			return 0, err
  3749  		}
  3750  		i -= size
  3751  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3752  		i--
  3753  		dAtA[i] = 0xa
  3754  	}
  3755  	return len(dAtA) - i, nil
  3756  }
  3757  func (m *SetOperation_Child_ComputedUserset) MarshalToVT(dAtA []byte) (int, error) {
  3758  	size := m.SizeVT()
  3759  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3760  }
  3761  
  3762  func (m *SetOperation_Child_ComputedUserset) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3763  	i := len(dAtA)
  3764  	if m.ComputedUserset != nil {
  3765  		size, err := m.ComputedUserset.MarshalToSizedBufferVT(dAtA[:i])
  3766  		if err != nil {
  3767  			return 0, err
  3768  		}
  3769  		i -= size
  3770  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3771  		i--
  3772  		dAtA[i] = 0x12
  3773  	}
  3774  	return len(dAtA) - i, nil
  3775  }
  3776  func (m *SetOperation_Child_TupleToUserset) MarshalToVT(dAtA []byte) (int, error) {
  3777  	size := m.SizeVT()
  3778  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3779  }
  3780  
  3781  func (m *SetOperation_Child_TupleToUserset) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3782  	i := len(dAtA)
  3783  	if m.TupleToUserset != nil {
  3784  		size, err := m.TupleToUserset.MarshalToSizedBufferVT(dAtA[:i])
  3785  		if err != nil {
  3786  			return 0, err
  3787  		}
  3788  		i -= size
  3789  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3790  		i--
  3791  		dAtA[i] = 0x1a
  3792  	}
  3793  	return len(dAtA) - i, nil
  3794  }
  3795  func (m *SetOperation_Child_UsersetRewrite) MarshalToVT(dAtA []byte) (int, error) {
  3796  	size := m.SizeVT()
  3797  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3798  }
  3799  
  3800  func (m *SetOperation_Child_UsersetRewrite) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3801  	i := len(dAtA)
  3802  	if m.UsersetRewrite != nil {
  3803  		size, err := m.UsersetRewrite.MarshalToSizedBufferVT(dAtA[:i])
  3804  		if err != nil {
  3805  			return 0, err
  3806  		}
  3807  		i -= size
  3808  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3809  		i--
  3810  		dAtA[i] = 0x22
  3811  	}
  3812  	return len(dAtA) - i, nil
  3813  }
  3814  func (m *SetOperation_Child_XNil) MarshalToVT(dAtA []byte) (int, error) {
  3815  	size := m.SizeVT()
  3816  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3817  }
  3818  
  3819  func (m *SetOperation_Child_XNil) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3820  	i := len(dAtA)
  3821  	if m.XNil != nil {
  3822  		size, err := m.XNil.MarshalToSizedBufferVT(dAtA[:i])
  3823  		if err != nil {
  3824  			return 0, err
  3825  		}
  3826  		i -= size
  3827  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3828  		i--
  3829  		dAtA[i] = 0x32
  3830  	}
  3831  	return len(dAtA) - i, nil
  3832  }
  3833  func (m *SetOperation) MarshalVT() (dAtA []byte, err error) {
  3834  	if m == nil {
  3835  		return nil, nil
  3836  	}
  3837  	size := m.SizeVT()
  3838  	dAtA = make([]byte, size)
  3839  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3840  	if err != nil {
  3841  		return nil, err
  3842  	}
  3843  	return dAtA[:n], nil
  3844  }
  3845  
  3846  func (m *SetOperation) MarshalToVT(dAtA []byte) (int, error) {
  3847  	size := m.SizeVT()
  3848  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3849  }
  3850  
  3851  func (m *SetOperation) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3852  	if m == nil {
  3853  		return 0, nil
  3854  	}
  3855  	i := len(dAtA)
  3856  	_ = i
  3857  	var l int
  3858  	_ = l
  3859  	if m.unknownFields != nil {
  3860  		i -= len(m.unknownFields)
  3861  		copy(dAtA[i:], m.unknownFields)
  3862  	}
  3863  	if len(m.Child) > 0 {
  3864  		for iNdEx := len(m.Child) - 1; iNdEx >= 0; iNdEx-- {
  3865  			size, err := m.Child[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
  3866  			if err != nil {
  3867  				return 0, err
  3868  			}
  3869  			i -= size
  3870  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3871  			i--
  3872  			dAtA[i] = 0xa
  3873  		}
  3874  	}
  3875  	return len(dAtA) - i, nil
  3876  }
  3877  
  3878  func (m *TupleToUserset_Tupleset) MarshalVT() (dAtA []byte, err error) {
  3879  	if m == nil {
  3880  		return nil, nil
  3881  	}
  3882  	size := m.SizeVT()
  3883  	dAtA = make([]byte, size)
  3884  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3885  	if err != nil {
  3886  		return nil, err
  3887  	}
  3888  	return dAtA[:n], nil
  3889  }
  3890  
  3891  func (m *TupleToUserset_Tupleset) MarshalToVT(dAtA []byte) (int, error) {
  3892  	size := m.SizeVT()
  3893  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3894  }
  3895  
  3896  func (m *TupleToUserset_Tupleset) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3897  	if m == nil {
  3898  		return 0, nil
  3899  	}
  3900  	i := len(dAtA)
  3901  	_ = i
  3902  	var l int
  3903  	_ = l
  3904  	if m.unknownFields != nil {
  3905  		i -= len(m.unknownFields)
  3906  		copy(dAtA[i:], m.unknownFields)
  3907  	}
  3908  	if len(m.Relation) > 0 {
  3909  		i -= len(m.Relation)
  3910  		copy(dAtA[i:], m.Relation)
  3911  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Relation)))
  3912  		i--
  3913  		dAtA[i] = 0xa
  3914  	}
  3915  	return len(dAtA) - i, nil
  3916  }
  3917  
  3918  func (m *TupleToUserset) MarshalVT() (dAtA []byte, err error) {
  3919  	if m == nil {
  3920  		return nil, nil
  3921  	}
  3922  	size := m.SizeVT()
  3923  	dAtA = make([]byte, size)
  3924  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3925  	if err != nil {
  3926  		return nil, err
  3927  	}
  3928  	return dAtA[:n], nil
  3929  }
  3930  
  3931  func (m *TupleToUserset) MarshalToVT(dAtA []byte) (int, error) {
  3932  	size := m.SizeVT()
  3933  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3934  }
  3935  
  3936  func (m *TupleToUserset) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  3937  	if m == nil {
  3938  		return 0, nil
  3939  	}
  3940  	i := len(dAtA)
  3941  	_ = i
  3942  	var l int
  3943  	_ = l
  3944  	if m.unknownFields != nil {
  3945  		i -= len(m.unknownFields)
  3946  		copy(dAtA[i:], m.unknownFields)
  3947  	}
  3948  	if m.SourcePosition != nil {
  3949  		size, err := m.SourcePosition.MarshalToSizedBufferVT(dAtA[:i])
  3950  		if err != nil {
  3951  			return 0, err
  3952  		}
  3953  		i -= size
  3954  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3955  		i--
  3956  		dAtA[i] = 0x1a
  3957  	}
  3958  	if m.ComputedUserset != nil {
  3959  		size, err := m.ComputedUserset.MarshalToSizedBufferVT(dAtA[:i])
  3960  		if err != nil {
  3961  			return 0, err
  3962  		}
  3963  		i -= size
  3964  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3965  		i--
  3966  		dAtA[i] = 0x12
  3967  	}
  3968  	if m.Tupleset != nil {
  3969  		size, err := m.Tupleset.MarshalToSizedBufferVT(dAtA[:i])
  3970  		if err != nil {
  3971  			return 0, err
  3972  		}
  3973  		i -= size
  3974  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  3975  		i--
  3976  		dAtA[i] = 0xa
  3977  	}
  3978  	return len(dAtA) - i, nil
  3979  }
  3980  
  3981  func (m *ComputedUserset) MarshalVT() (dAtA []byte, err error) {
  3982  	if m == nil {
  3983  		return nil, nil
  3984  	}
  3985  	size := m.SizeVT()
  3986  	dAtA = make([]byte, size)
  3987  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  3988  	if err != nil {
  3989  		return nil, err
  3990  	}
  3991  	return dAtA[:n], nil
  3992  }
  3993  
  3994  func (m *ComputedUserset) MarshalToVT(dAtA []byte) (int, error) {
  3995  	size := m.SizeVT()
  3996  	return m.MarshalToSizedBufferVT(dAtA[:size])
  3997  }
  3998  
  3999  func (m *ComputedUserset) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  4000  	if m == nil {
  4001  		return 0, nil
  4002  	}
  4003  	i := len(dAtA)
  4004  	_ = i
  4005  	var l int
  4006  	_ = l
  4007  	if m.unknownFields != nil {
  4008  		i -= len(m.unknownFields)
  4009  		copy(dAtA[i:], m.unknownFields)
  4010  	}
  4011  	if m.SourcePosition != nil {
  4012  		size, err := m.SourcePosition.MarshalToSizedBufferVT(dAtA[:i])
  4013  		if err != nil {
  4014  			return 0, err
  4015  		}
  4016  		i -= size
  4017  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  4018  		i--
  4019  		dAtA[i] = 0x1a
  4020  	}
  4021  	if len(m.Relation) > 0 {
  4022  		i -= len(m.Relation)
  4023  		copy(dAtA[i:], m.Relation)
  4024  		i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Relation)))
  4025  		i--
  4026  		dAtA[i] = 0x12
  4027  	}
  4028  	if m.Object != 0 {
  4029  		i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Object))
  4030  		i--
  4031  		dAtA[i] = 0x8
  4032  	}
  4033  	return len(dAtA) - i, nil
  4034  }
  4035  
  4036  func (m *SourcePosition) MarshalVT() (dAtA []byte, err error) {
  4037  	if m == nil {
  4038  		return nil, nil
  4039  	}
  4040  	size := m.SizeVT()
  4041  	dAtA = make([]byte, size)
  4042  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  4043  	if err != nil {
  4044  		return nil, err
  4045  	}
  4046  	return dAtA[:n], nil
  4047  }
  4048  
  4049  func (m *SourcePosition) MarshalToVT(dAtA []byte) (int, error) {
  4050  	size := m.SizeVT()
  4051  	return m.MarshalToSizedBufferVT(dAtA[:size])
  4052  }
  4053  
  4054  func (m *SourcePosition) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  4055  	if m == nil {
  4056  		return 0, nil
  4057  	}
  4058  	i := len(dAtA)
  4059  	_ = i
  4060  	var l int
  4061  	_ = l
  4062  	if m.unknownFields != nil {
  4063  		i -= len(m.unknownFields)
  4064  		copy(dAtA[i:], m.unknownFields)
  4065  	}
  4066  	if m.ZeroIndexedColumnPosition != 0 {
  4067  		i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ZeroIndexedColumnPosition))
  4068  		i--
  4069  		dAtA[i] = 0x10
  4070  	}
  4071  	if m.ZeroIndexedLineNumber != 0 {
  4072  		i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ZeroIndexedLineNumber))
  4073  		i--
  4074  		dAtA[i] = 0x8
  4075  	}
  4076  	return len(dAtA) - i, nil
  4077  }
  4078  
  4079  func (m *CaveatExpression) MarshalVT() (dAtA []byte, err error) {
  4080  	if m == nil {
  4081  		return nil, nil
  4082  	}
  4083  	size := m.SizeVT()
  4084  	dAtA = make([]byte, size)
  4085  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  4086  	if err != nil {
  4087  		return nil, err
  4088  	}
  4089  	return dAtA[:n], nil
  4090  }
  4091  
  4092  func (m *CaveatExpression) MarshalToVT(dAtA []byte) (int, error) {
  4093  	size := m.SizeVT()
  4094  	return m.MarshalToSizedBufferVT(dAtA[:size])
  4095  }
  4096  
  4097  func (m *CaveatExpression) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  4098  	if m == nil {
  4099  		return 0, nil
  4100  	}
  4101  	i := len(dAtA)
  4102  	_ = i
  4103  	var l int
  4104  	_ = l
  4105  	if m.unknownFields != nil {
  4106  		i -= len(m.unknownFields)
  4107  		copy(dAtA[i:], m.unknownFields)
  4108  	}
  4109  	if vtmsg, ok := m.OperationOrCaveat.(interface {
  4110  		MarshalToSizedBufferVT([]byte) (int, error)
  4111  	}); ok {
  4112  		size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i])
  4113  		if err != nil {
  4114  			return 0, err
  4115  		}
  4116  		i -= size
  4117  	}
  4118  	return len(dAtA) - i, nil
  4119  }
  4120  
  4121  func (m *CaveatExpression_Operation) MarshalToVT(dAtA []byte) (int, error) {
  4122  	size := m.SizeVT()
  4123  	return m.MarshalToSizedBufferVT(dAtA[:size])
  4124  }
  4125  
  4126  func (m *CaveatExpression_Operation) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  4127  	i := len(dAtA)
  4128  	if m.Operation != nil {
  4129  		size, err := m.Operation.MarshalToSizedBufferVT(dAtA[:i])
  4130  		if err != nil {
  4131  			return 0, err
  4132  		}
  4133  		i -= size
  4134  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  4135  		i--
  4136  		dAtA[i] = 0xa
  4137  	}
  4138  	return len(dAtA) - i, nil
  4139  }
  4140  func (m *CaveatExpression_Caveat) MarshalToVT(dAtA []byte) (int, error) {
  4141  	size := m.SizeVT()
  4142  	return m.MarshalToSizedBufferVT(dAtA[:size])
  4143  }
  4144  
  4145  func (m *CaveatExpression_Caveat) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  4146  	i := len(dAtA)
  4147  	if m.Caveat != nil {
  4148  		size, err := m.Caveat.MarshalToSizedBufferVT(dAtA[:i])
  4149  		if err != nil {
  4150  			return 0, err
  4151  		}
  4152  		i -= size
  4153  		i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  4154  		i--
  4155  		dAtA[i] = 0x12
  4156  	}
  4157  	return len(dAtA) - i, nil
  4158  }
  4159  func (m *CaveatOperation) MarshalVT() (dAtA []byte, err error) {
  4160  	if m == nil {
  4161  		return nil, nil
  4162  	}
  4163  	size := m.SizeVT()
  4164  	dAtA = make([]byte, size)
  4165  	n, err := m.MarshalToSizedBufferVT(dAtA[:size])
  4166  	if err != nil {
  4167  		return nil, err
  4168  	}
  4169  	return dAtA[:n], nil
  4170  }
  4171  
  4172  func (m *CaveatOperation) MarshalToVT(dAtA []byte) (int, error) {
  4173  	size := m.SizeVT()
  4174  	return m.MarshalToSizedBufferVT(dAtA[:size])
  4175  }
  4176  
  4177  func (m *CaveatOperation) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
  4178  	if m == nil {
  4179  		return 0, nil
  4180  	}
  4181  	i := len(dAtA)
  4182  	_ = i
  4183  	var l int
  4184  	_ = l
  4185  	if m.unknownFields != nil {
  4186  		i -= len(m.unknownFields)
  4187  		copy(dAtA[i:], m.unknownFields)
  4188  	}
  4189  	if len(m.Children) > 0 {
  4190  		for iNdEx := len(m.Children) - 1; iNdEx >= 0; iNdEx-- {
  4191  			size, err := m.Children[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
  4192  			if err != nil {
  4193  				return 0, err
  4194  			}
  4195  			i -= size
  4196  			i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
  4197  			i--
  4198  			dAtA[i] = 0x12
  4199  		}
  4200  	}
  4201  	if m.Op != 0 {
  4202  		i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Op))
  4203  		i--
  4204  		dAtA[i] = 0x8
  4205  	}
  4206  	return len(dAtA) - i, nil
  4207  }
  4208  
  4209  func (m *RelationTuple) SizeVT() (n int) {
  4210  	if m == nil {
  4211  		return 0
  4212  	}
  4213  	var l int
  4214  	_ = l
  4215  	if m.ResourceAndRelation != nil {
  4216  		l = m.ResourceAndRelation.SizeVT()
  4217  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4218  	}
  4219  	if m.Subject != nil {
  4220  		l = m.Subject.SizeVT()
  4221  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4222  	}
  4223  	if m.Caveat != nil {
  4224  		l = m.Caveat.SizeVT()
  4225  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4226  	}
  4227  	n += len(m.unknownFields)
  4228  	return n
  4229  }
  4230  
  4231  func (m *ContextualizedCaveat) SizeVT() (n int) {
  4232  	if m == nil {
  4233  		return 0
  4234  	}
  4235  	var l int
  4236  	_ = l
  4237  	l = len(m.CaveatName)
  4238  	if l > 0 {
  4239  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4240  	}
  4241  	if m.Context != nil {
  4242  		l = (*structpb1.Struct)(m.Context).SizeVT()
  4243  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4244  	}
  4245  	n += len(m.unknownFields)
  4246  	return n
  4247  }
  4248  
  4249  func (m *CaveatDefinition) SizeVT() (n int) {
  4250  	if m == nil {
  4251  		return 0
  4252  	}
  4253  	var l int
  4254  	_ = l
  4255  	l = len(m.Name)
  4256  	if l > 0 {
  4257  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4258  	}
  4259  	l = len(m.SerializedExpression)
  4260  	if l > 0 {
  4261  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4262  	}
  4263  	if len(m.ParameterTypes) > 0 {
  4264  		for k, v := range m.ParameterTypes {
  4265  			_ = k
  4266  			_ = v
  4267  			l = 0
  4268  			if v != nil {
  4269  				l = v.SizeVT()
  4270  			}
  4271  			l += 1 + protohelpers.SizeOfVarint(uint64(l))
  4272  			mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + l
  4273  			n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
  4274  		}
  4275  	}
  4276  	if m.Metadata != nil {
  4277  		l = m.Metadata.SizeVT()
  4278  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4279  	}
  4280  	if m.SourcePosition != nil {
  4281  		l = m.SourcePosition.SizeVT()
  4282  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4283  	}
  4284  	n += len(m.unknownFields)
  4285  	return n
  4286  }
  4287  
  4288  func (m *CaveatTypeReference) SizeVT() (n int) {
  4289  	if m == nil {
  4290  		return 0
  4291  	}
  4292  	var l int
  4293  	_ = l
  4294  	l = len(m.TypeName)
  4295  	if l > 0 {
  4296  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4297  	}
  4298  	if len(m.ChildTypes) > 0 {
  4299  		for _, e := range m.ChildTypes {
  4300  			l = e.SizeVT()
  4301  			n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4302  		}
  4303  	}
  4304  	n += len(m.unknownFields)
  4305  	return n
  4306  }
  4307  
  4308  func (m *ObjectAndRelation) SizeVT() (n int) {
  4309  	if m == nil {
  4310  		return 0
  4311  	}
  4312  	var l int
  4313  	_ = l
  4314  	l = len(m.Namespace)
  4315  	if l > 0 {
  4316  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4317  	}
  4318  	l = len(m.ObjectId)
  4319  	if l > 0 {
  4320  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4321  	}
  4322  	l = len(m.Relation)
  4323  	if l > 0 {
  4324  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4325  	}
  4326  	n += len(m.unknownFields)
  4327  	return n
  4328  }
  4329  
  4330  func (m *RelationReference) SizeVT() (n int) {
  4331  	if m == nil {
  4332  		return 0
  4333  	}
  4334  	var l int
  4335  	_ = l
  4336  	l = len(m.Namespace)
  4337  	if l > 0 {
  4338  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4339  	}
  4340  	l = len(m.Relation)
  4341  	if l > 0 {
  4342  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4343  	}
  4344  	n += len(m.unknownFields)
  4345  	return n
  4346  }
  4347  
  4348  func (m *Zookie) SizeVT() (n int) {
  4349  	if m == nil {
  4350  		return 0
  4351  	}
  4352  	var l int
  4353  	_ = l
  4354  	l = len(m.Token)
  4355  	if l > 0 {
  4356  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4357  	}
  4358  	n += len(m.unknownFields)
  4359  	return n
  4360  }
  4361  
  4362  func (m *RelationTupleUpdate) SizeVT() (n int) {
  4363  	if m == nil {
  4364  		return 0
  4365  	}
  4366  	var l int
  4367  	_ = l
  4368  	if m.Operation != 0 {
  4369  		n += 1 + protohelpers.SizeOfVarint(uint64(m.Operation))
  4370  	}
  4371  	if m.Tuple != nil {
  4372  		l = m.Tuple.SizeVT()
  4373  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4374  	}
  4375  	n += len(m.unknownFields)
  4376  	return n
  4377  }
  4378  
  4379  func (m *RelationTupleTreeNode) SizeVT() (n int) {
  4380  	if m == nil {
  4381  		return 0
  4382  	}
  4383  	var l int
  4384  	_ = l
  4385  	if vtmsg, ok := m.NodeType.(interface{ SizeVT() int }); ok {
  4386  		n += vtmsg.SizeVT()
  4387  	}
  4388  	if m.Expanded != nil {
  4389  		l = m.Expanded.SizeVT()
  4390  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4391  	}
  4392  	if m.CaveatExpression != nil {
  4393  		l = m.CaveatExpression.SizeVT()
  4394  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4395  	}
  4396  	n += len(m.unknownFields)
  4397  	return n
  4398  }
  4399  
  4400  func (m *RelationTupleTreeNode_IntermediateNode) SizeVT() (n int) {
  4401  	if m == nil {
  4402  		return 0
  4403  	}
  4404  	var l int
  4405  	_ = l
  4406  	if m.IntermediateNode != nil {
  4407  		l = m.IntermediateNode.SizeVT()
  4408  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4409  	}
  4410  	return n
  4411  }
  4412  func (m *RelationTupleTreeNode_LeafNode) SizeVT() (n int) {
  4413  	if m == nil {
  4414  		return 0
  4415  	}
  4416  	var l int
  4417  	_ = l
  4418  	if m.LeafNode != nil {
  4419  		l = m.LeafNode.SizeVT()
  4420  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4421  	}
  4422  	return n
  4423  }
  4424  func (m *SetOperationUserset) SizeVT() (n int) {
  4425  	if m == nil {
  4426  		return 0
  4427  	}
  4428  	var l int
  4429  	_ = l
  4430  	if m.Operation != 0 {
  4431  		n += 1 + protohelpers.SizeOfVarint(uint64(m.Operation))
  4432  	}
  4433  	if len(m.ChildNodes) > 0 {
  4434  		for _, e := range m.ChildNodes {
  4435  			l = e.SizeVT()
  4436  			n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4437  		}
  4438  	}
  4439  	n += len(m.unknownFields)
  4440  	return n
  4441  }
  4442  
  4443  func (m *DirectSubject) SizeVT() (n int) {
  4444  	if m == nil {
  4445  		return 0
  4446  	}
  4447  	var l int
  4448  	_ = l
  4449  	if m.Subject != nil {
  4450  		l = m.Subject.SizeVT()
  4451  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4452  	}
  4453  	if m.CaveatExpression != nil {
  4454  		l = m.CaveatExpression.SizeVT()
  4455  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4456  	}
  4457  	n += len(m.unknownFields)
  4458  	return n
  4459  }
  4460  
  4461  func (m *DirectSubjects) SizeVT() (n int) {
  4462  	if m == nil {
  4463  		return 0
  4464  	}
  4465  	var l int
  4466  	_ = l
  4467  	if len(m.Subjects) > 0 {
  4468  		for _, e := range m.Subjects {
  4469  			l = e.SizeVT()
  4470  			n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4471  		}
  4472  	}
  4473  	n += len(m.unknownFields)
  4474  	return n
  4475  }
  4476  
  4477  func (m *Metadata) SizeVT() (n int) {
  4478  	if m == nil {
  4479  		return 0
  4480  	}
  4481  	var l int
  4482  	_ = l
  4483  	if len(m.MetadataMessage) > 0 {
  4484  		for _, e := range m.MetadataMessage {
  4485  			l = (*anypb1.Any)(e).SizeVT()
  4486  			n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4487  		}
  4488  	}
  4489  	n += len(m.unknownFields)
  4490  	return n
  4491  }
  4492  
  4493  func (m *NamespaceDefinition) SizeVT() (n int) {
  4494  	if m == nil {
  4495  		return 0
  4496  	}
  4497  	var l int
  4498  	_ = l
  4499  	l = len(m.Name)
  4500  	if l > 0 {
  4501  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4502  	}
  4503  	if len(m.Relation) > 0 {
  4504  		for _, e := range m.Relation {
  4505  			l = e.SizeVT()
  4506  			n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4507  		}
  4508  	}
  4509  	if m.Metadata != nil {
  4510  		l = m.Metadata.SizeVT()
  4511  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4512  	}
  4513  	if m.SourcePosition != nil {
  4514  		l = m.SourcePosition.SizeVT()
  4515  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4516  	}
  4517  	n += len(m.unknownFields)
  4518  	return n
  4519  }
  4520  
  4521  func (m *Relation) SizeVT() (n int) {
  4522  	if m == nil {
  4523  		return 0
  4524  	}
  4525  	var l int
  4526  	_ = l
  4527  	l = len(m.Name)
  4528  	if l > 0 {
  4529  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4530  	}
  4531  	if m.UsersetRewrite != nil {
  4532  		l = m.UsersetRewrite.SizeVT()
  4533  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4534  	}
  4535  	if m.TypeInformation != nil {
  4536  		l = m.TypeInformation.SizeVT()
  4537  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4538  	}
  4539  	if m.Metadata != nil {
  4540  		l = m.Metadata.SizeVT()
  4541  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4542  	}
  4543  	if m.SourcePosition != nil {
  4544  		l = m.SourcePosition.SizeVT()
  4545  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4546  	}
  4547  	l = len(m.AliasingRelation)
  4548  	if l > 0 {
  4549  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4550  	}
  4551  	l = len(m.CanonicalCacheKey)
  4552  	if l > 0 {
  4553  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4554  	}
  4555  	n += len(m.unknownFields)
  4556  	return n
  4557  }
  4558  
  4559  func (m *ReachabilityGraph) SizeVT() (n int) {
  4560  	if m == nil {
  4561  		return 0
  4562  	}
  4563  	var l int
  4564  	_ = l
  4565  	if len(m.EntrypointsBySubjectType) > 0 {
  4566  		for k, v := range m.EntrypointsBySubjectType {
  4567  			_ = k
  4568  			_ = v
  4569  			l = 0
  4570  			if v != nil {
  4571  				l = v.SizeVT()
  4572  			}
  4573  			l += 1 + protohelpers.SizeOfVarint(uint64(l))
  4574  			mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + l
  4575  			n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
  4576  		}
  4577  	}
  4578  	if len(m.EntrypointsBySubjectRelation) > 0 {
  4579  		for k, v := range m.EntrypointsBySubjectRelation {
  4580  			_ = k
  4581  			_ = v
  4582  			l = 0
  4583  			if v != nil {
  4584  				l = v.SizeVT()
  4585  			}
  4586  			l += 1 + protohelpers.SizeOfVarint(uint64(l))
  4587  			mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + l
  4588  			n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
  4589  		}
  4590  	}
  4591  	n += len(m.unknownFields)
  4592  	return n
  4593  }
  4594  
  4595  func (m *ReachabilityEntrypoints) SizeVT() (n int) {
  4596  	if m == nil {
  4597  		return 0
  4598  	}
  4599  	var l int
  4600  	_ = l
  4601  	if len(m.Entrypoints) > 0 {
  4602  		for _, e := range m.Entrypoints {
  4603  			l = e.SizeVT()
  4604  			n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4605  		}
  4606  	}
  4607  	l = len(m.SubjectType)
  4608  	if l > 0 {
  4609  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4610  	}
  4611  	if m.SubjectRelation != nil {
  4612  		l = m.SubjectRelation.SizeVT()
  4613  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4614  	}
  4615  	n += len(m.unknownFields)
  4616  	return n
  4617  }
  4618  
  4619  func (m *ReachabilityEntrypoint) SizeVT() (n int) {
  4620  	if m == nil {
  4621  		return 0
  4622  	}
  4623  	var l int
  4624  	_ = l
  4625  	if m.Kind != 0 {
  4626  		n += 1 + protohelpers.SizeOfVarint(uint64(m.Kind))
  4627  	}
  4628  	if m.TargetRelation != nil {
  4629  		l = m.TargetRelation.SizeVT()
  4630  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4631  	}
  4632  	if m.ResultStatus != 0 {
  4633  		n += 1 + protohelpers.SizeOfVarint(uint64(m.ResultStatus))
  4634  	}
  4635  	l = len(m.TuplesetRelation)
  4636  	if l > 0 {
  4637  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4638  	}
  4639  	n += len(m.unknownFields)
  4640  	return n
  4641  }
  4642  
  4643  func (m *TypeInformation) SizeVT() (n int) {
  4644  	if m == nil {
  4645  		return 0
  4646  	}
  4647  	var l int
  4648  	_ = l
  4649  	if len(m.AllowedDirectRelations) > 0 {
  4650  		for _, e := range m.AllowedDirectRelations {
  4651  			l = e.SizeVT()
  4652  			n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4653  		}
  4654  	}
  4655  	n += len(m.unknownFields)
  4656  	return n
  4657  }
  4658  
  4659  func (m *AllowedRelation_PublicWildcard) SizeVT() (n int) {
  4660  	if m == nil {
  4661  		return 0
  4662  	}
  4663  	var l int
  4664  	_ = l
  4665  	n += len(m.unknownFields)
  4666  	return n
  4667  }
  4668  
  4669  func (m *AllowedRelation) SizeVT() (n int) {
  4670  	if m == nil {
  4671  		return 0
  4672  	}
  4673  	var l int
  4674  	_ = l
  4675  	l = len(m.Namespace)
  4676  	if l > 0 {
  4677  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4678  	}
  4679  	if vtmsg, ok := m.RelationOrWildcard.(interface{ SizeVT() int }); ok {
  4680  		n += vtmsg.SizeVT()
  4681  	}
  4682  	if m.SourcePosition != nil {
  4683  		l = m.SourcePosition.SizeVT()
  4684  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4685  	}
  4686  	if m.RequiredCaveat != nil {
  4687  		l = m.RequiredCaveat.SizeVT()
  4688  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4689  	}
  4690  	n += len(m.unknownFields)
  4691  	return n
  4692  }
  4693  
  4694  func (m *AllowedRelation_Relation) SizeVT() (n int) {
  4695  	if m == nil {
  4696  		return 0
  4697  	}
  4698  	var l int
  4699  	_ = l
  4700  	l = len(m.Relation)
  4701  	n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4702  	return n
  4703  }
  4704  func (m *AllowedRelation_PublicWildcard_) SizeVT() (n int) {
  4705  	if m == nil {
  4706  		return 0
  4707  	}
  4708  	var l int
  4709  	_ = l
  4710  	if m.PublicWildcard != nil {
  4711  		l = m.PublicWildcard.SizeVT()
  4712  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4713  	}
  4714  	return n
  4715  }
  4716  func (m *AllowedCaveat) SizeVT() (n int) {
  4717  	if m == nil {
  4718  		return 0
  4719  	}
  4720  	var l int
  4721  	_ = l
  4722  	l = len(m.CaveatName)
  4723  	if l > 0 {
  4724  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4725  	}
  4726  	n += len(m.unknownFields)
  4727  	return n
  4728  }
  4729  
  4730  func (m *UsersetRewrite) SizeVT() (n int) {
  4731  	if m == nil {
  4732  		return 0
  4733  	}
  4734  	var l int
  4735  	_ = l
  4736  	if vtmsg, ok := m.RewriteOperation.(interface{ SizeVT() int }); ok {
  4737  		n += vtmsg.SizeVT()
  4738  	}
  4739  	if m.SourcePosition != nil {
  4740  		l = m.SourcePosition.SizeVT()
  4741  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4742  	}
  4743  	n += len(m.unknownFields)
  4744  	return n
  4745  }
  4746  
  4747  func (m *UsersetRewrite_Union) SizeVT() (n int) {
  4748  	if m == nil {
  4749  		return 0
  4750  	}
  4751  	var l int
  4752  	_ = l
  4753  	if m.Union != nil {
  4754  		l = m.Union.SizeVT()
  4755  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4756  	}
  4757  	return n
  4758  }
  4759  func (m *UsersetRewrite_Intersection) SizeVT() (n int) {
  4760  	if m == nil {
  4761  		return 0
  4762  	}
  4763  	var l int
  4764  	_ = l
  4765  	if m.Intersection != nil {
  4766  		l = m.Intersection.SizeVT()
  4767  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4768  	}
  4769  	return n
  4770  }
  4771  func (m *UsersetRewrite_Exclusion) SizeVT() (n int) {
  4772  	if m == nil {
  4773  		return 0
  4774  	}
  4775  	var l int
  4776  	_ = l
  4777  	if m.Exclusion != nil {
  4778  		l = m.Exclusion.SizeVT()
  4779  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4780  	}
  4781  	return n
  4782  }
  4783  func (m *SetOperation_Child_This) SizeVT() (n int) {
  4784  	if m == nil {
  4785  		return 0
  4786  	}
  4787  	var l int
  4788  	_ = l
  4789  	n += len(m.unknownFields)
  4790  	return n
  4791  }
  4792  
  4793  func (m *SetOperation_Child_Nil) SizeVT() (n int) {
  4794  	if m == nil {
  4795  		return 0
  4796  	}
  4797  	var l int
  4798  	_ = l
  4799  	n += len(m.unknownFields)
  4800  	return n
  4801  }
  4802  
  4803  func (m *SetOperation_Child) SizeVT() (n int) {
  4804  	if m == nil {
  4805  		return 0
  4806  	}
  4807  	var l int
  4808  	_ = l
  4809  	if vtmsg, ok := m.ChildType.(interface{ SizeVT() int }); ok {
  4810  		n += vtmsg.SizeVT()
  4811  	}
  4812  	if m.SourcePosition != nil {
  4813  		l = m.SourcePosition.SizeVT()
  4814  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4815  	}
  4816  	if len(m.OperationPath) > 0 {
  4817  		l = 0
  4818  		for _, e := range m.OperationPath {
  4819  			l += protohelpers.SizeOfVarint(uint64(e))
  4820  		}
  4821  		n += 1 + protohelpers.SizeOfVarint(uint64(l)) + l
  4822  	}
  4823  	n += len(m.unknownFields)
  4824  	return n
  4825  }
  4826  
  4827  func (m *SetOperation_Child_XThis) SizeVT() (n int) {
  4828  	if m == nil {
  4829  		return 0
  4830  	}
  4831  	var l int
  4832  	_ = l
  4833  	if m.XThis != nil {
  4834  		l = m.XThis.SizeVT()
  4835  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4836  	}
  4837  	return n
  4838  }
  4839  func (m *SetOperation_Child_ComputedUserset) SizeVT() (n int) {
  4840  	if m == nil {
  4841  		return 0
  4842  	}
  4843  	var l int
  4844  	_ = l
  4845  	if m.ComputedUserset != nil {
  4846  		l = m.ComputedUserset.SizeVT()
  4847  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4848  	}
  4849  	return n
  4850  }
  4851  func (m *SetOperation_Child_TupleToUserset) SizeVT() (n int) {
  4852  	if m == nil {
  4853  		return 0
  4854  	}
  4855  	var l int
  4856  	_ = l
  4857  	if m.TupleToUserset != nil {
  4858  		l = m.TupleToUserset.SizeVT()
  4859  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4860  	}
  4861  	return n
  4862  }
  4863  func (m *SetOperation_Child_UsersetRewrite) SizeVT() (n int) {
  4864  	if m == nil {
  4865  		return 0
  4866  	}
  4867  	var l int
  4868  	_ = l
  4869  	if m.UsersetRewrite != nil {
  4870  		l = m.UsersetRewrite.SizeVT()
  4871  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4872  	}
  4873  	return n
  4874  }
  4875  func (m *SetOperation_Child_XNil) SizeVT() (n int) {
  4876  	if m == nil {
  4877  		return 0
  4878  	}
  4879  	var l int
  4880  	_ = l
  4881  	if m.XNil != nil {
  4882  		l = m.XNil.SizeVT()
  4883  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4884  	}
  4885  	return n
  4886  }
  4887  func (m *SetOperation) SizeVT() (n int) {
  4888  	if m == nil {
  4889  		return 0
  4890  	}
  4891  	var l int
  4892  	_ = l
  4893  	if len(m.Child) > 0 {
  4894  		for _, e := range m.Child {
  4895  			l = e.SizeVT()
  4896  			n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4897  		}
  4898  	}
  4899  	n += len(m.unknownFields)
  4900  	return n
  4901  }
  4902  
  4903  func (m *TupleToUserset_Tupleset) SizeVT() (n int) {
  4904  	if m == nil {
  4905  		return 0
  4906  	}
  4907  	var l int
  4908  	_ = l
  4909  	l = len(m.Relation)
  4910  	if l > 0 {
  4911  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4912  	}
  4913  	n += len(m.unknownFields)
  4914  	return n
  4915  }
  4916  
  4917  func (m *TupleToUserset) SizeVT() (n int) {
  4918  	if m == nil {
  4919  		return 0
  4920  	}
  4921  	var l int
  4922  	_ = l
  4923  	if m.Tupleset != nil {
  4924  		l = m.Tupleset.SizeVT()
  4925  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4926  	}
  4927  	if m.ComputedUserset != nil {
  4928  		l = m.ComputedUserset.SizeVT()
  4929  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4930  	}
  4931  	if m.SourcePosition != nil {
  4932  		l = m.SourcePosition.SizeVT()
  4933  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4934  	}
  4935  	n += len(m.unknownFields)
  4936  	return n
  4937  }
  4938  
  4939  func (m *ComputedUserset) SizeVT() (n int) {
  4940  	if m == nil {
  4941  		return 0
  4942  	}
  4943  	var l int
  4944  	_ = l
  4945  	if m.Object != 0 {
  4946  		n += 1 + protohelpers.SizeOfVarint(uint64(m.Object))
  4947  	}
  4948  	l = len(m.Relation)
  4949  	if l > 0 {
  4950  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4951  	}
  4952  	if m.SourcePosition != nil {
  4953  		l = m.SourcePosition.SizeVT()
  4954  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4955  	}
  4956  	n += len(m.unknownFields)
  4957  	return n
  4958  }
  4959  
  4960  func (m *SourcePosition) SizeVT() (n int) {
  4961  	if m == nil {
  4962  		return 0
  4963  	}
  4964  	var l int
  4965  	_ = l
  4966  	if m.ZeroIndexedLineNumber != 0 {
  4967  		n += 1 + protohelpers.SizeOfVarint(uint64(m.ZeroIndexedLineNumber))
  4968  	}
  4969  	if m.ZeroIndexedColumnPosition != 0 {
  4970  		n += 1 + protohelpers.SizeOfVarint(uint64(m.ZeroIndexedColumnPosition))
  4971  	}
  4972  	n += len(m.unknownFields)
  4973  	return n
  4974  }
  4975  
  4976  func (m *CaveatExpression) SizeVT() (n int) {
  4977  	if m == nil {
  4978  		return 0
  4979  	}
  4980  	var l int
  4981  	_ = l
  4982  	if vtmsg, ok := m.OperationOrCaveat.(interface{ SizeVT() int }); ok {
  4983  		n += vtmsg.SizeVT()
  4984  	}
  4985  	n += len(m.unknownFields)
  4986  	return n
  4987  }
  4988  
  4989  func (m *CaveatExpression_Operation) SizeVT() (n int) {
  4990  	if m == nil {
  4991  		return 0
  4992  	}
  4993  	var l int
  4994  	_ = l
  4995  	if m.Operation != nil {
  4996  		l = m.Operation.SizeVT()
  4997  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  4998  	}
  4999  	return n
  5000  }
  5001  func (m *CaveatExpression_Caveat) SizeVT() (n int) {
  5002  	if m == nil {
  5003  		return 0
  5004  	}
  5005  	var l int
  5006  	_ = l
  5007  	if m.Caveat != nil {
  5008  		l = m.Caveat.SizeVT()
  5009  		n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  5010  	}
  5011  	return n
  5012  }
  5013  func (m *CaveatOperation) SizeVT() (n int) {
  5014  	if m == nil {
  5015  		return 0
  5016  	}
  5017  	var l int
  5018  	_ = l
  5019  	if m.Op != 0 {
  5020  		n += 1 + protohelpers.SizeOfVarint(uint64(m.Op))
  5021  	}
  5022  	if len(m.Children) > 0 {
  5023  		for _, e := range m.Children {
  5024  			l = e.SizeVT()
  5025  			n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
  5026  		}
  5027  	}
  5028  	n += len(m.unknownFields)
  5029  	return n
  5030  }
  5031  
  5032  func (m *RelationTuple) UnmarshalVT(dAtA []byte) error {
  5033  	l := len(dAtA)
  5034  	iNdEx := 0
  5035  	for iNdEx < l {
  5036  		preIndex := iNdEx
  5037  		var wire uint64
  5038  		for shift := uint(0); ; shift += 7 {
  5039  			if shift >= 64 {
  5040  				return protohelpers.ErrIntOverflow
  5041  			}
  5042  			if iNdEx >= l {
  5043  				return io.ErrUnexpectedEOF
  5044  			}
  5045  			b := dAtA[iNdEx]
  5046  			iNdEx++
  5047  			wire |= uint64(b&0x7F) << shift
  5048  			if b < 0x80 {
  5049  				break
  5050  			}
  5051  		}
  5052  		fieldNum := int32(wire >> 3)
  5053  		wireType := int(wire & 0x7)
  5054  		if wireType == 4 {
  5055  			return fmt.Errorf("proto: RelationTuple: wiretype end group for non-group")
  5056  		}
  5057  		if fieldNum <= 0 {
  5058  			return fmt.Errorf("proto: RelationTuple: illegal tag %d (wire type %d)", fieldNum, wire)
  5059  		}
  5060  		switch fieldNum {
  5061  		case 1:
  5062  			if wireType != 2 {
  5063  				return fmt.Errorf("proto: wrong wireType = %d for field ResourceAndRelation", wireType)
  5064  			}
  5065  			var msglen int
  5066  			for shift := uint(0); ; shift += 7 {
  5067  				if shift >= 64 {
  5068  					return protohelpers.ErrIntOverflow
  5069  				}
  5070  				if iNdEx >= l {
  5071  					return io.ErrUnexpectedEOF
  5072  				}
  5073  				b := dAtA[iNdEx]
  5074  				iNdEx++
  5075  				msglen |= int(b&0x7F) << shift
  5076  				if b < 0x80 {
  5077  					break
  5078  				}
  5079  			}
  5080  			if msglen < 0 {
  5081  				return protohelpers.ErrInvalidLength
  5082  			}
  5083  			postIndex := iNdEx + msglen
  5084  			if postIndex < 0 {
  5085  				return protohelpers.ErrInvalidLength
  5086  			}
  5087  			if postIndex > l {
  5088  				return io.ErrUnexpectedEOF
  5089  			}
  5090  			if m.ResourceAndRelation == nil {
  5091  				m.ResourceAndRelation = &ObjectAndRelation{}
  5092  			}
  5093  			if err := m.ResourceAndRelation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  5094  				return err
  5095  			}
  5096  			iNdEx = postIndex
  5097  		case 2:
  5098  			if wireType != 2 {
  5099  				return fmt.Errorf("proto: wrong wireType = %d for field Subject", wireType)
  5100  			}
  5101  			var msglen int
  5102  			for shift := uint(0); ; shift += 7 {
  5103  				if shift >= 64 {
  5104  					return protohelpers.ErrIntOverflow
  5105  				}
  5106  				if iNdEx >= l {
  5107  					return io.ErrUnexpectedEOF
  5108  				}
  5109  				b := dAtA[iNdEx]
  5110  				iNdEx++
  5111  				msglen |= int(b&0x7F) << shift
  5112  				if b < 0x80 {
  5113  					break
  5114  				}
  5115  			}
  5116  			if msglen < 0 {
  5117  				return protohelpers.ErrInvalidLength
  5118  			}
  5119  			postIndex := iNdEx + msglen
  5120  			if postIndex < 0 {
  5121  				return protohelpers.ErrInvalidLength
  5122  			}
  5123  			if postIndex > l {
  5124  				return io.ErrUnexpectedEOF
  5125  			}
  5126  			if m.Subject == nil {
  5127  				m.Subject = &ObjectAndRelation{}
  5128  			}
  5129  			if err := m.Subject.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  5130  				return err
  5131  			}
  5132  			iNdEx = postIndex
  5133  		case 3:
  5134  			if wireType != 2 {
  5135  				return fmt.Errorf("proto: wrong wireType = %d for field Caveat", wireType)
  5136  			}
  5137  			var msglen int
  5138  			for shift := uint(0); ; shift += 7 {
  5139  				if shift >= 64 {
  5140  					return protohelpers.ErrIntOverflow
  5141  				}
  5142  				if iNdEx >= l {
  5143  					return io.ErrUnexpectedEOF
  5144  				}
  5145  				b := dAtA[iNdEx]
  5146  				iNdEx++
  5147  				msglen |= int(b&0x7F) << shift
  5148  				if b < 0x80 {
  5149  					break
  5150  				}
  5151  			}
  5152  			if msglen < 0 {
  5153  				return protohelpers.ErrInvalidLength
  5154  			}
  5155  			postIndex := iNdEx + msglen
  5156  			if postIndex < 0 {
  5157  				return protohelpers.ErrInvalidLength
  5158  			}
  5159  			if postIndex > l {
  5160  				return io.ErrUnexpectedEOF
  5161  			}
  5162  			if m.Caveat == nil {
  5163  				m.Caveat = &ContextualizedCaveat{}
  5164  			}
  5165  			if err := m.Caveat.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  5166  				return err
  5167  			}
  5168  			iNdEx = postIndex
  5169  		default:
  5170  			iNdEx = preIndex
  5171  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  5172  			if err != nil {
  5173  				return err
  5174  			}
  5175  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  5176  				return protohelpers.ErrInvalidLength
  5177  			}
  5178  			if (iNdEx + skippy) > l {
  5179  				return io.ErrUnexpectedEOF
  5180  			}
  5181  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  5182  			iNdEx += skippy
  5183  		}
  5184  	}
  5185  
  5186  	if iNdEx > l {
  5187  		return io.ErrUnexpectedEOF
  5188  	}
  5189  	return nil
  5190  }
  5191  func (m *ContextualizedCaveat) UnmarshalVT(dAtA []byte) error {
  5192  	l := len(dAtA)
  5193  	iNdEx := 0
  5194  	for iNdEx < l {
  5195  		preIndex := iNdEx
  5196  		var wire uint64
  5197  		for shift := uint(0); ; shift += 7 {
  5198  			if shift >= 64 {
  5199  				return protohelpers.ErrIntOverflow
  5200  			}
  5201  			if iNdEx >= l {
  5202  				return io.ErrUnexpectedEOF
  5203  			}
  5204  			b := dAtA[iNdEx]
  5205  			iNdEx++
  5206  			wire |= uint64(b&0x7F) << shift
  5207  			if b < 0x80 {
  5208  				break
  5209  			}
  5210  		}
  5211  		fieldNum := int32(wire >> 3)
  5212  		wireType := int(wire & 0x7)
  5213  		if wireType == 4 {
  5214  			return fmt.Errorf("proto: ContextualizedCaveat: wiretype end group for non-group")
  5215  		}
  5216  		if fieldNum <= 0 {
  5217  			return fmt.Errorf("proto: ContextualizedCaveat: illegal tag %d (wire type %d)", fieldNum, wire)
  5218  		}
  5219  		switch fieldNum {
  5220  		case 1:
  5221  			if wireType != 2 {
  5222  				return fmt.Errorf("proto: wrong wireType = %d for field CaveatName", wireType)
  5223  			}
  5224  			var stringLen uint64
  5225  			for shift := uint(0); ; shift += 7 {
  5226  				if shift >= 64 {
  5227  					return protohelpers.ErrIntOverflow
  5228  				}
  5229  				if iNdEx >= l {
  5230  					return io.ErrUnexpectedEOF
  5231  				}
  5232  				b := dAtA[iNdEx]
  5233  				iNdEx++
  5234  				stringLen |= uint64(b&0x7F) << shift
  5235  				if b < 0x80 {
  5236  					break
  5237  				}
  5238  			}
  5239  			intStringLen := int(stringLen)
  5240  			if intStringLen < 0 {
  5241  				return protohelpers.ErrInvalidLength
  5242  			}
  5243  			postIndex := iNdEx + intStringLen
  5244  			if postIndex < 0 {
  5245  				return protohelpers.ErrInvalidLength
  5246  			}
  5247  			if postIndex > l {
  5248  				return io.ErrUnexpectedEOF
  5249  			}
  5250  			m.CaveatName = string(dAtA[iNdEx:postIndex])
  5251  			iNdEx = postIndex
  5252  		case 2:
  5253  			if wireType != 2 {
  5254  				return fmt.Errorf("proto: wrong wireType = %d for field Context", wireType)
  5255  			}
  5256  			var msglen int
  5257  			for shift := uint(0); ; shift += 7 {
  5258  				if shift >= 64 {
  5259  					return protohelpers.ErrIntOverflow
  5260  				}
  5261  				if iNdEx >= l {
  5262  					return io.ErrUnexpectedEOF
  5263  				}
  5264  				b := dAtA[iNdEx]
  5265  				iNdEx++
  5266  				msglen |= int(b&0x7F) << shift
  5267  				if b < 0x80 {
  5268  					break
  5269  				}
  5270  			}
  5271  			if msglen < 0 {
  5272  				return protohelpers.ErrInvalidLength
  5273  			}
  5274  			postIndex := iNdEx + msglen
  5275  			if postIndex < 0 {
  5276  				return protohelpers.ErrInvalidLength
  5277  			}
  5278  			if postIndex > l {
  5279  				return io.ErrUnexpectedEOF
  5280  			}
  5281  			if m.Context == nil {
  5282  				m.Context = &structpb.Struct{}
  5283  			}
  5284  			if err := (*structpb1.Struct)(m.Context).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  5285  				return err
  5286  			}
  5287  			iNdEx = postIndex
  5288  		default:
  5289  			iNdEx = preIndex
  5290  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  5291  			if err != nil {
  5292  				return err
  5293  			}
  5294  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  5295  				return protohelpers.ErrInvalidLength
  5296  			}
  5297  			if (iNdEx + skippy) > l {
  5298  				return io.ErrUnexpectedEOF
  5299  			}
  5300  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  5301  			iNdEx += skippy
  5302  		}
  5303  	}
  5304  
  5305  	if iNdEx > l {
  5306  		return io.ErrUnexpectedEOF
  5307  	}
  5308  	return nil
  5309  }
  5310  func (m *CaveatDefinition) UnmarshalVT(dAtA []byte) error {
  5311  	l := len(dAtA)
  5312  	iNdEx := 0
  5313  	for iNdEx < l {
  5314  		preIndex := iNdEx
  5315  		var wire uint64
  5316  		for shift := uint(0); ; shift += 7 {
  5317  			if shift >= 64 {
  5318  				return protohelpers.ErrIntOverflow
  5319  			}
  5320  			if iNdEx >= l {
  5321  				return io.ErrUnexpectedEOF
  5322  			}
  5323  			b := dAtA[iNdEx]
  5324  			iNdEx++
  5325  			wire |= uint64(b&0x7F) << shift
  5326  			if b < 0x80 {
  5327  				break
  5328  			}
  5329  		}
  5330  		fieldNum := int32(wire >> 3)
  5331  		wireType := int(wire & 0x7)
  5332  		if wireType == 4 {
  5333  			return fmt.Errorf("proto: CaveatDefinition: wiretype end group for non-group")
  5334  		}
  5335  		if fieldNum <= 0 {
  5336  			return fmt.Errorf("proto: CaveatDefinition: illegal tag %d (wire type %d)", fieldNum, wire)
  5337  		}
  5338  		switch fieldNum {
  5339  		case 1:
  5340  			if wireType != 2 {
  5341  				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
  5342  			}
  5343  			var stringLen uint64
  5344  			for shift := uint(0); ; shift += 7 {
  5345  				if shift >= 64 {
  5346  					return protohelpers.ErrIntOverflow
  5347  				}
  5348  				if iNdEx >= l {
  5349  					return io.ErrUnexpectedEOF
  5350  				}
  5351  				b := dAtA[iNdEx]
  5352  				iNdEx++
  5353  				stringLen |= uint64(b&0x7F) << shift
  5354  				if b < 0x80 {
  5355  					break
  5356  				}
  5357  			}
  5358  			intStringLen := int(stringLen)
  5359  			if intStringLen < 0 {
  5360  				return protohelpers.ErrInvalidLength
  5361  			}
  5362  			postIndex := iNdEx + intStringLen
  5363  			if postIndex < 0 {
  5364  				return protohelpers.ErrInvalidLength
  5365  			}
  5366  			if postIndex > l {
  5367  				return io.ErrUnexpectedEOF
  5368  			}
  5369  			m.Name = string(dAtA[iNdEx:postIndex])
  5370  			iNdEx = postIndex
  5371  		case 2:
  5372  			if wireType != 2 {
  5373  				return fmt.Errorf("proto: wrong wireType = %d for field SerializedExpression", wireType)
  5374  			}
  5375  			var byteLen int
  5376  			for shift := uint(0); ; shift += 7 {
  5377  				if shift >= 64 {
  5378  					return protohelpers.ErrIntOverflow
  5379  				}
  5380  				if iNdEx >= l {
  5381  					return io.ErrUnexpectedEOF
  5382  				}
  5383  				b := dAtA[iNdEx]
  5384  				iNdEx++
  5385  				byteLen |= int(b&0x7F) << shift
  5386  				if b < 0x80 {
  5387  					break
  5388  				}
  5389  			}
  5390  			if byteLen < 0 {
  5391  				return protohelpers.ErrInvalidLength
  5392  			}
  5393  			postIndex := iNdEx + byteLen
  5394  			if postIndex < 0 {
  5395  				return protohelpers.ErrInvalidLength
  5396  			}
  5397  			if postIndex > l {
  5398  				return io.ErrUnexpectedEOF
  5399  			}
  5400  			m.SerializedExpression = append(m.SerializedExpression[:0], dAtA[iNdEx:postIndex]...)
  5401  			if m.SerializedExpression == nil {
  5402  				m.SerializedExpression = []byte{}
  5403  			}
  5404  			iNdEx = postIndex
  5405  		case 3:
  5406  			if wireType != 2 {
  5407  				return fmt.Errorf("proto: wrong wireType = %d for field ParameterTypes", wireType)
  5408  			}
  5409  			var msglen int
  5410  			for shift := uint(0); ; shift += 7 {
  5411  				if shift >= 64 {
  5412  					return protohelpers.ErrIntOverflow
  5413  				}
  5414  				if iNdEx >= l {
  5415  					return io.ErrUnexpectedEOF
  5416  				}
  5417  				b := dAtA[iNdEx]
  5418  				iNdEx++
  5419  				msglen |= int(b&0x7F) << shift
  5420  				if b < 0x80 {
  5421  					break
  5422  				}
  5423  			}
  5424  			if msglen < 0 {
  5425  				return protohelpers.ErrInvalidLength
  5426  			}
  5427  			postIndex := iNdEx + msglen
  5428  			if postIndex < 0 {
  5429  				return protohelpers.ErrInvalidLength
  5430  			}
  5431  			if postIndex > l {
  5432  				return io.ErrUnexpectedEOF
  5433  			}
  5434  			if m.ParameterTypes == nil {
  5435  				m.ParameterTypes = make(map[string]*CaveatTypeReference)
  5436  			}
  5437  			var mapkey string
  5438  			var mapvalue *CaveatTypeReference
  5439  			for iNdEx < postIndex {
  5440  				entryPreIndex := iNdEx
  5441  				var wire uint64
  5442  				for shift := uint(0); ; shift += 7 {
  5443  					if shift >= 64 {
  5444  						return protohelpers.ErrIntOverflow
  5445  					}
  5446  					if iNdEx >= l {
  5447  						return io.ErrUnexpectedEOF
  5448  					}
  5449  					b := dAtA[iNdEx]
  5450  					iNdEx++
  5451  					wire |= uint64(b&0x7F) << shift
  5452  					if b < 0x80 {
  5453  						break
  5454  					}
  5455  				}
  5456  				fieldNum := int32(wire >> 3)
  5457  				if fieldNum == 1 {
  5458  					var stringLenmapkey uint64
  5459  					for shift := uint(0); ; shift += 7 {
  5460  						if shift >= 64 {
  5461  							return protohelpers.ErrIntOverflow
  5462  						}
  5463  						if iNdEx >= l {
  5464  							return io.ErrUnexpectedEOF
  5465  						}
  5466  						b := dAtA[iNdEx]
  5467  						iNdEx++
  5468  						stringLenmapkey |= uint64(b&0x7F) << shift
  5469  						if b < 0x80 {
  5470  							break
  5471  						}
  5472  					}
  5473  					intStringLenmapkey := int(stringLenmapkey)
  5474  					if intStringLenmapkey < 0 {
  5475  						return protohelpers.ErrInvalidLength
  5476  					}
  5477  					postStringIndexmapkey := iNdEx + intStringLenmapkey
  5478  					if postStringIndexmapkey < 0 {
  5479  						return protohelpers.ErrInvalidLength
  5480  					}
  5481  					if postStringIndexmapkey > l {
  5482  						return io.ErrUnexpectedEOF
  5483  					}
  5484  					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
  5485  					iNdEx = postStringIndexmapkey
  5486  				} else if fieldNum == 2 {
  5487  					var mapmsglen int
  5488  					for shift := uint(0); ; shift += 7 {
  5489  						if shift >= 64 {
  5490  							return protohelpers.ErrIntOverflow
  5491  						}
  5492  						if iNdEx >= l {
  5493  							return io.ErrUnexpectedEOF
  5494  						}
  5495  						b := dAtA[iNdEx]
  5496  						iNdEx++
  5497  						mapmsglen |= int(b&0x7F) << shift
  5498  						if b < 0x80 {
  5499  							break
  5500  						}
  5501  					}
  5502  					if mapmsglen < 0 {
  5503  						return protohelpers.ErrInvalidLength
  5504  					}
  5505  					postmsgIndex := iNdEx + mapmsglen
  5506  					if postmsgIndex < 0 {
  5507  						return protohelpers.ErrInvalidLength
  5508  					}
  5509  					if postmsgIndex > l {
  5510  						return io.ErrUnexpectedEOF
  5511  					}
  5512  					mapvalue = &CaveatTypeReference{}
  5513  					if err := mapvalue.UnmarshalVT(dAtA[iNdEx:postmsgIndex]); err != nil {
  5514  						return err
  5515  					}
  5516  					iNdEx = postmsgIndex
  5517  				} else {
  5518  					iNdEx = entryPreIndex
  5519  					skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  5520  					if err != nil {
  5521  						return err
  5522  					}
  5523  					if (skippy < 0) || (iNdEx+skippy) < 0 {
  5524  						return protohelpers.ErrInvalidLength
  5525  					}
  5526  					if (iNdEx + skippy) > postIndex {
  5527  						return io.ErrUnexpectedEOF
  5528  					}
  5529  					iNdEx += skippy
  5530  				}
  5531  			}
  5532  			m.ParameterTypes[mapkey] = mapvalue
  5533  			iNdEx = postIndex
  5534  		case 4:
  5535  			if wireType != 2 {
  5536  				return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
  5537  			}
  5538  			var msglen int
  5539  			for shift := uint(0); ; shift += 7 {
  5540  				if shift >= 64 {
  5541  					return protohelpers.ErrIntOverflow
  5542  				}
  5543  				if iNdEx >= l {
  5544  					return io.ErrUnexpectedEOF
  5545  				}
  5546  				b := dAtA[iNdEx]
  5547  				iNdEx++
  5548  				msglen |= int(b&0x7F) << shift
  5549  				if b < 0x80 {
  5550  					break
  5551  				}
  5552  			}
  5553  			if msglen < 0 {
  5554  				return protohelpers.ErrInvalidLength
  5555  			}
  5556  			postIndex := iNdEx + msglen
  5557  			if postIndex < 0 {
  5558  				return protohelpers.ErrInvalidLength
  5559  			}
  5560  			if postIndex > l {
  5561  				return io.ErrUnexpectedEOF
  5562  			}
  5563  			if m.Metadata == nil {
  5564  				m.Metadata = &Metadata{}
  5565  			}
  5566  			if err := m.Metadata.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  5567  				return err
  5568  			}
  5569  			iNdEx = postIndex
  5570  		case 5:
  5571  			if wireType != 2 {
  5572  				return fmt.Errorf("proto: wrong wireType = %d for field SourcePosition", wireType)
  5573  			}
  5574  			var msglen int
  5575  			for shift := uint(0); ; shift += 7 {
  5576  				if shift >= 64 {
  5577  					return protohelpers.ErrIntOverflow
  5578  				}
  5579  				if iNdEx >= l {
  5580  					return io.ErrUnexpectedEOF
  5581  				}
  5582  				b := dAtA[iNdEx]
  5583  				iNdEx++
  5584  				msglen |= int(b&0x7F) << shift
  5585  				if b < 0x80 {
  5586  					break
  5587  				}
  5588  			}
  5589  			if msglen < 0 {
  5590  				return protohelpers.ErrInvalidLength
  5591  			}
  5592  			postIndex := iNdEx + msglen
  5593  			if postIndex < 0 {
  5594  				return protohelpers.ErrInvalidLength
  5595  			}
  5596  			if postIndex > l {
  5597  				return io.ErrUnexpectedEOF
  5598  			}
  5599  			if m.SourcePosition == nil {
  5600  				m.SourcePosition = &SourcePosition{}
  5601  			}
  5602  			if err := m.SourcePosition.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  5603  				return err
  5604  			}
  5605  			iNdEx = postIndex
  5606  		default:
  5607  			iNdEx = preIndex
  5608  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  5609  			if err != nil {
  5610  				return err
  5611  			}
  5612  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  5613  				return protohelpers.ErrInvalidLength
  5614  			}
  5615  			if (iNdEx + skippy) > l {
  5616  				return io.ErrUnexpectedEOF
  5617  			}
  5618  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  5619  			iNdEx += skippy
  5620  		}
  5621  	}
  5622  
  5623  	if iNdEx > l {
  5624  		return io.ErrUnexpectedEOF
  5625  	}
  5626  	return nil
  5627  }
  5628  func (m *CaveatTypeReference) UnmarshalVT(dAtA []byte) error {
  5629  	l := len(dAtA)
  5630  	iNdEx := 0
  5631  	for iNdEx < l {
  5632  		preIndex := iNdEx
  5633  		var wire uint64
  5634  		for shift := uint(0); ; shift += 7 {
  5635  			if shift >= 64 {
  5636  				return protohelpers.ErrIntOverflow
  5637  			}
  5638  			if iNdEx >= l {
  5639  				return io.ErrUnexpectedEOF
  5640  			}
  5641  			b := dAtA[iNdEx]
  5642  			iNdEx++
  5643  			wire |= uint64(b&0x7F) << shift
  5644  			if b < 0x80 {
  5645  				break
  5646  			}
  5647  		}
  5648  		fieldNum := int32(wire >> 3)
  5649  		wireType := int(wire & 0x7)
  5650  		if wireType == 4 {
  5651  			return fmt.Errorf("proto: CaveatTypeReference: wiretype end group for non-group")
  5652  		}
  5653  		if fieldNum <= 0 {
  5654  			return fmt.Errorf("proto: CaveatTypeReference: illegal tag %d (wire type %d)", fieldNum, wire)
  5655  		}
  5656  		switch fieldNum {
  5657  		case 1:
  5658  			if wireType != 2 {
  5659  				return fmt.Errorf("proto: wrong wireType = %d for field TypeName", wireType)
  5660  			}
  5661  			var stringLen uint64
  5662  			for shift := uint(0); ; shift += 7 {
  5663  				if shift >= 64 {
  5664  					return protohelpers.ErrIntOverflow
  5665  				}
  5666  				if iNdEx >= l {
  5667  					return io.ErrUnexpectedEOF
  5668  				}
  5669  				b := dAtA[iNdEx]
  5670  				iNdEx++
  5671  				stringLen |= uint64(b&0x7F) << shift
  5672  				if b < 0x80 {
  5673  					break
  5674  				}
  5675  			}
  5676  			intStringLen := int(stringLen)
  5677  			if intStringLen < 0 {
  5678  				return protohelpers.ErrInvalidLength
  5679  			}
  5680  			postIndex := iNdEx + intStringLen
  5681  			if postIndex < 0 {
  5682  				return protohelpers.ErrInvalidLength
  5683  			}
  5684  			if postIndex > l {
  5685  				return io.ErrUnexpectedEOF
  5686  			}
  5687  			m.TypeName = string(dAtA[iNdEx:postIndex])
  5688  			iNdEx = postIndex
  5689  		case 2:
  5690  			if wireType != 2 {
  5691  				return fmt.Errorf("proto: wrong wireType = %d for field ChildTypes", wireType)
  5692  			}
  5693  			var msglen int
  5694  			for shift := uint(0); ; shift += 7 {
  5695  				if shift >= 64 {
  5696  					return protohelpers.ErrIntOverflow
  5697  				}
  5698  				if iNdEx >= l {
  5699  					return io.ErrUnexpectedEOF
  5700  				}
  5701  				b := dAtA[iNdEx]
  5702  				iNdEx++
  5703  				msglen |= int(b&0x7F) << shift
  5704  				if b < 0x80 {
  5705  					break
  5706  				}
  5707  			}
  5708  			if msglen < 0 {
  5709  				return protohelpers.ErrInvalidLength
  5710  			}
  5711  			postIndex := iNdEx + msglen
  5712  			if postIndex < 0 {
  5713  				return protohelpers.ErrInvalidLength
  5714  			}
  5715  			if postIndex > l {
  5716  				return io.ErrUnexpectedEOF
  5717  			}
  5718  			m.ChildTypes = append(m.ChildTypes, &CaveatTypeReference{})
  5719  			if err := m.ChildTypes[len(m.ChildTypes)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  5720  				return err
  5721  			}
  5722  			iNdEx = postIndex
  5723  		default:
  5724  			iNdEx = preIndex
  5725  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  5726  			if err != nil {
  5727  				return err
  5728  			}
  5729  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  5730  				return protohelpers.ErrInvalidLength
  5731  			}
  5732  			if (iNdEx + skippy) > l {
  5733  				return io.ErrUnexpectedEOF
  5734  			}
  5735  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  5736  			iNdEx += skippy
  5737  		}
  5738  	}
  5739  
  5740  	if iNdEx > l {
  5741  		return io.ErrUnexpectedEOF
  5742  	}
  5743  	return nil
  5744  }
  5745  func (m *ObjectAndRelation) UnmarshalVT(dAtA []byte) error {
  5746  	l := len(dAtA)
  5747  	iNdEx := 0
  5748  	for iNdEx < l {
  5749  		preIndex := iNdEx
  5750  		var wire uint64
  5751  		for shift := uint(0); ; shift += 7 {
  5752  			if shift >= 64 {
  5753  				return protohelpers.ErrIntOverflow
  5754  			}
  5755  			if iNdEx >= l {
  5756  				return io.ErrUnexpectedEOF
  5757  			}
  5758  			b := dAtA[iNdEx]
  5759  			iNdEx++
  5760  			wire |= uint64(b&0x7F) << shift
  5761  			if b < 0x80 {
  5762  				break
  5763  			}
  5764  		}
  5765  		fieldNum := int32(wire >> 3)
  5766  		wireType := int(wire & 0x7)
  5767  		if wireType == 4 {
  5768  			return fmt.Errorf("proto: ObjectAndRelation: wiretype end group for non-group")
  5769  		}
  5770  		if fieldNum <= 0 {
  5771  			return fmt.Errorf("proto: ObjectAndRelation: illegal tag %d (wire type %d)", fieldNum, wire)
  5772  		}
  5773  		switch fieldNum {
  5774  		case 1:
  5775  			if wireType != 2 {
  5776  				return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType)
  5777  			}
  5778  			var stringLen uint64
  5779  			for shift := uint(0); ; shift += 7 {
  5780  				if shift >= 64 {
  5781  					return protohelpers.ErrIntOverflow
  5782  				}
  5783  				if iNdEx >= l {
  5784  					return io.ErrUnexpectedEOF
  5785  				}
  5786  				b := dAtA[iNdEx]
  5787  				iNdEx++
  5788  				stringLen |= uint64(b&0x7F) << shift
  5789  				if b < 0x80 {
  5790  					break
  5791  				}
  5792  			}
  5793  			intStringLen := int(stringLen)
  5794  			if intStringLen < 0 {
  5795  				return protohelpers.ErrInvalidLength
  5796  			}
  5797  			postIndex := iNdEx + intStringLen
  5798  			if postIndex < 0 {
  5799  				return protohelpers.ErrInvalidLength
  5800  			}
  5801  			if postIndex > l {
  5802  				return io.ErrUnexpectedEOF
  5803  			}
  5804  			m.Namespace = string(dAtA[iNdEx:postIndex])
  5805  			iNdEx = postIndex
  5806  		case 2:
  5807  			if wireType != 2 {
  5808  				return fmt.Errorf("proto: wrong wireType = %d for field ObjectId", wireType)
  5809  			}
  5810  			var stringLen uint64
  5811  			for shift := uint(0); ; shift += 7 {
  5812  				if shift >= 64 {
  5813  					return protohelpers.ErrIntOverflow
  5814  				}
  5815  				if iNdEx >= l {
  5816  					return io.ErrUnexpectedEOF
  5817  				}
  5818  				b := dAtA[iNdEx]
  5819  				iNdEx++
  5820  				stringLen |= uint64(b&0x7F) << shift
  5821  				if b < 0x80 {
  5822  					break
  5823  				}
  5824  			}
  5825  			intStringLen := int(stringLen)
  5826  			if intStringLen < 0 {
  5827  				return protohelpers.ErrInvalidLength
  5828  			}
  5829  			postIndex := iNdEx + intStringLen
  5830  			if postIndex < 0 {
  5831  				return protohelpers.ErrInvalidLength
  5832  			}
  5833  			if postIndex > l {
  5834  				return io.ErrUnexpectedEOF
  5835  			}
  5836  			m.ObjectId = string(dAtA[iNdEx:postIndex])
  5837  			iNdEx = postIndex
  5838  		case 3:
  5839  			if wireType != 2 {
  5840  				return fmt.Errorf("proto: wrong wireType = %d for field Relation", wireType)
  5841  			}
  5842  			var stringLen uint64
  5843  			for shift := uint(0); ; shift += 7 {
  5844  				if shift >= 64 {
  5845  					return protohelpers.ErrIntOverflow
  5846  				}
  5847  				if iNdEx >= l {
  5848  					return io.ErrUnexpectedEOF
  5849  				}
  5850  				b := dAtA[iNdEx]
  5851  				iNdEx++
  5852  				stringLen |= uint64(b&0x7F) << shift
  5853  				if b < 0x80 {
  5854  					break
  5855  				}
  5856  			}
  5857  			intStringLen := int(stringLen)
  5858  			if intStringLen < 0 {
  5859  				return protohelpers.ErrInvalidLength
  5860  			}
  5861  			postIndex := iNdEx + intStringLen
  5862  			if postIndex < 0 {
  5863  				return protohelpers.ErrInvalidLength
  5864  			}
  5865  			if postIndex > l {
  5866  				return io.ErrUnexpectedEOF
  5867  			}
  5868  			m.Relation = string(dAtA[iNdEx:postIndex])
  5869  			iNdEx = postIndex
  5870  		default:
  5871  			iNdEx = preIndex
  5872  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  5873  			if err != nil {
  5874  				return err
  5875  			}
  5876  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  5877  				return protohelpers.ErrInvalidLength
  5878  			}
  5879  			if (iNdEx + skippy) > l {
  5880  				return io.ErrUnexpectedEOF
  5881  			}
  5882  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  5883  			iNdEx += skippy
  5884  		}
  5885  	}
  5886  
  5887  	if iNdEx > l {
  5888  		return io.ErrUnexpectedEOF
  5889  	}
  5890  	return nil
  5891  }
  5892  func (m *RelationReference) UnmarshalVT(dAtA []byte) error {
  5893  	l := len(dAtA)
  5894  	iNdEx := 0
  5895  	for iNdEx < l {
  5896  		preIndex := iNdEx
  5897  		var wire uint64
  5898  		for shift := uint(0); ; shift += 7 {
  5899  			if shift >= 64 {
  5900  				return protohelpers.ErrIntOverflow
  5901  			}
  5902  			if iNdEx >= l {
  5903  				return io.ErrUnexpectedEOF
  5904  			}
  5905  			b := dAtA[iNdEx]
  5906  			iNdEx++
  5907  			wire |= uint64(b&0x7F) << shift
  5908  			if b < 0x80 {
  5909  				break
  5910  			}
  5911  		}
  5912  		fieldNum := int32(wire >> 3)
  5913  		wireType := int(wire & 0x7)
  5914  		if wireType == 4 {
  5915  			return fmt.Errorf("proto: RelationReference: wiretype end group for non-group")
  5916  		}
  5917  		if fieldNum <= 0 {
  5918  			return fmt.Errorf("proto: RelationReference: illegal tag %d (wire type %d)", fieldNum, wire)
  5919  		}
  5920  		switch fieldNum {
  5921  		case 1:
  5922  			if wireType != 2 {
  5923  				return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType)
  5924  			}
  5925  			var stringLen uint64
  5926  			for shift := uint(0); ; shift += 7 {
  5927  				if shift >= 64 {
  5928  					return protohelpers.ErrIntOverflow
  5929  				}
  5930  				if iNdEx >= l {
  5931  					return io.ErrUnexpectedEOF
  5932  				}
  5933  				b := dAtA[iNdEx]
  5934  				iNdEx++
  5935  				stringLen |= uint64(b&0x7F) << shift
  5936  				if b < 0x80 {
  5937  					break
  5938  				}
  5939  			}
  5940  			intStringLen := int(stringLen)
  5941  			if intStringLen < 0 {
  5942  				return protohelpers.ErrInvalidLength
  5943  			}
  5944  			postIndex := iNdEx + intStringLen
  5945  			if postIndex < 0 {
  5946  				return protohelpers.ErrInvalidLength
  5947  			}
  5948  			if postIndex > l {
  5949  				return io.ErrUnexpectedEOF
  5950  			}
  5951  			m.Namespace = string(dAtA[iNdEx:postIndex])
  5952  			iNdEx = postIndex
  5953  		case 3:
  5954  			if wireType != 2 {
  5955  				return fmt.Errorf("proto: wrong wireType = %d for field Relation", wireType)
  5956  			}
  5957  			var stringLen uint64
  5958  			for shift := uint(0); ; shift += 7 {
  5959  				if shift >= 64 {
  5960  					return protohelpers.ErrIntOverflow
  5961  				}
  5962  				if iNdEx >= l {
  5963  					return io.ErrUnexpectedEOF
  5964  				}
  5965  				b := dAtA[iNdEx]
  5966  				iNdEx++
  5967  				stringLen |= uint64(b&0x7F) << shift
  5968  				if b < 0x80 {
  5969  					break
  5970  				}
  5971  			}
  5972  			intStringLen := int(stringLen)
  5973  			if intStringLen < 0 {
  5974  				return protohelpers.ErrInvalidLength
  5975  			}
  5976  			postIndex := iNdEx + intStringLen
  5977  			if postIndex < 0 {
  5978  				return protohelpers.ErrInvalidLength
  5979  			}
  5980  			if postIndex > l {
  5981  				return io.ErrUnexpectedEOF
  5982  			}
  5983  			m.Relation = string(dAtA[iNdEx:postIndex])
  5984  			iNdEx = postIndex
  5985  		default:
  5986  			iNdEx = preIndex
  5987  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  5988  			if err != nil {
  5989  				return err
  5990  			}
  5991  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  5992  				return protohelpers.ErrInvalidLength
  5993  			}
  5994  			if (iNdEx + skippy) > l {
  5995  				return io.ErrUnexpectedEOF
  5996  			}
  5997  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  5998  			iNdEx += skippy
  5999  		}
  6000  	}
  6001  
  6002  	if iNdEx > l {
  6003  		return io.ErrUnexpectedEOF
  6004  	}
  6005  	return nil
  6006  }
  6007  func (m *Zookie) UnmarshalVT(dAtA []byte) error {
  6008  	l := len(dAtA)
  6009  	iNdEx := 0
  6010  	for iNdEx < l {
  6011  		preIndex := iNdEx
  6012  		var wire uint64
  6013  		for shift := uint(0); ; shift += 7 {
  6014  			if shift >= 64 {
  6015  				return protohelpers.ErrIntOverflow
  6016  			}
  6017  			if iNdEx >= l {
  6018  				return io.ErrUnexpectedEOF
  6019  			}
  6020  			b := dAtA[iNdEx]
  6021  			iNdEx++
  6022  			wire |= uint64(b&0x7F) << shift
  6023  			if b < 0x80 {
  6024  				break
  6025  			}
  6026  		}
  6027  		fieldNum := int32(wire >> 3)
  6028  		wireType := int(wire & 0x7)
  6029  		if wireType == 4 {
  6030  			return fmt.Errorf("proto: Zookie: wiretype end group for non-group")
  6031  		}
  6032  		if fieldNum <= 0 {
  6033  			return fmt.Errorf("proto: Zookie: illegal tag %d (wire type %d)", fieldNum, wire)
  6034  		}
  6035  		switch fieldNum {
  6036  		case 1:
  6037  			if wireType != 2 {
  6038  				return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType)
  6039  			}
  6040  			var stringLen uint64
  6041  			for shift := uint(0); ; shift += 7 {
  6042  				if shift >= 64 {
  6043  					return protohelpers.ErrIntOverflow
  6044  				}
  6045  				if iNdEx >= l {
  6046  					return io.ErrUnexpectedEOF
  6047  				}
  6048  				b := dAtA[iNdEx]
  6049  				iNdEx++
  6050  				stringLen |= uint64(b&0x7F) << shift
  6051  				if b < 0x80 {
  6052  					break
  6053  				}
  6054  			}
  6055  			intStringLen := int(stringLen)
  6056  			if intStringLen < 0 {
  6057  				return protohelpers.ErrInvalidLength
  6058  			}
  6059  			postIndex := iNdEx + intStringLen
  6060  			if postIndex < 0 {
  6061  				return protohelpers.ErrInvalidLength
  6062  			}
  6063  			if postIndex > l {
  6064  				return io.ErrUnexpectedEOF
  6065  			}
  6066  			m.Token = string(dAtA[iNdEx:postIndex])
  6067  			iNdEx = postIndex
  6068  		default:
  6069  			iNdEx = preIndex
  6070  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  6071  			if err != nil {
  6072  				return err
  6073  			}
  6074  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  6075  				return protohelpers.ErrInvalidLength
  6076  			}
  6077  			if (iNdEx + skippy) > l {
  6078  				return io.ErrUnexpectedEOF
  6079  			}
  6080  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  6081  			iNdEx += skippy
  6082  		}
  6083  	}
  6084  
  6085  	if iNdEx > l {
  6086  		return io.ErrUnexpectedEOF
  6087  	}
  6088  	return nil
  6089  }
  6090  func (m *RelationTupleUpdate) UnmarshalVT(dAtA []byte) error {
  6091  	l := len(dAtA)
  6092  	iNdEx := 0
  6093  	for iNdEx < l {
  6094  		preIndex := iNdEx
  6095  		var wire uint64
  6096  		for shift := uint(0); ; shift += 7 {
  6097  			if shift >= 64 {
  6098  				return protohelpers.ErrIntOverflow
  6099  			}
  6100  			if iNdEx >= l {
  6101  				return io.ErrUnexpectedEOF
  6102  			}
  6103  			b := dAtA[iNdEx]
  6104  			iNdEx++
  6105  			wire |= uint64(b&0x7F) << shift
  6106  			if b < 0x80 {
  6107  				break
  6108  			}
  6109  		}
  6110  		fieldNum := int32(wire >> 3)
  6111  		wireType := int(wire & 0x7)
  6112  		if wireType == 4 {
  6113  			return fmt.Errorf("proto: RelationTupleUpdate: wiretype end group for non-group")
  6114  		}
  6115  		if fieldNum <= 0 {
  6116  			return fmt.Errorf("proto: RelationTupleUpdate: illegal tag %d (wire type %d)", fieldNum, wire)
  6117  		}
  6118  		switch fieldNum {
  6119  		case 1:
  6120  			if wireType != 0 {
  6121  				return fmt.Errorf("proto: wrong wireType = %d for field Operation", wireType)
  6122  			}
  6123  			m.Operation = 0
  6124  			for shift := uint(0); ; shift += 7 {
  6125  				if shift >= 64 {
  6126  					return protohelpers.ErrIntOverflow
  6127  				}
  6128  				if iNdEx >= l {
  6129  					return io.ErrUnexpectedEOF
  6130  				}
  6131  				b := dAtA[iNdEx]
  6132  				iNdEx++
  6133  				m.Operation |= RelationTupleUpdate_Operation(b&0x7F) << shift
  6134  				if b < 0x80 {
  6135  					break
  6136  				}
  6137  			}
  6138  		case 2:
  6139  			if wireType != 2 {
  6140  				return fmt.Errorf("proto: wrong wireType = %d for field Tuple", wireType)
  6141  			}
  6142  			var msglen int
  6143  			for shift := uint(0); ; shift += 7 {
  6144  				if shift >= 64 {
  6145  					return protohelpers.ErrIntOverflow
  6146  				}
  6147  				if iNdEx >= l {
  6148  					return io.ErrUnexpectedEOF
  6149  				}
  6150  				b := dAtA[iNdEx]
  6151  				iNdEx++
  6152  				msglen |= int(b&0x7F) << shift
  6153  				if b < 0x80 {
  6154  					break
  6155  				}
  6156  			}
  6157  			if msglen < 0 {
  6158  				return protohelpers.ErrInvalidLength
  6159  			}
  6160  			postIndex := iNdEx + msglen
  6161  			if postIndex < 0 {
  6162  				return protohelpers.ErrInvalidLength
  6163  			}
  6164  			if postIndex > l {
  6165  				return io.ErrUnexpectedEOF
  6166  			}
  6167  			if m.Tuple == nil {
  6168  				m.Tuple = &RelationTuple{}
  6169  			}
  6170  			if err := m.Tuple.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6171  				return err
  6172  			}
  6173  			iNdEx = postIndex
  6174  		default:
  6175  			iNdEx = preIndex
  6176  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  6177  			if err != nil {
  6178  				return err
  6179  			}
  6180  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  6181  				return protohelpers.ErrInvalidLength
  6182  			}
  6183  			if (iNdEx + skippy) > l {
  6184  				return io.ErrUnexpectedEOF
  6185  			}
  6186  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  6187  			iNdEx += skippy
  6188  		}
  6189  	}
  6190  
  6191  	if iNdEx > l {
  6192  		return io.ErrUnexpectedEOF
  6193  	}
  6194  	return nil
  6195  }
  6196  func (m *RelationTupleTreeNode) UnmarshalVT(dAtA []byte) error {
  6197  	l := len(dAtA)
  6198  	iNdEx := 0
  6199  	for iNdEx < l {
  6200  		preIndex := iNdEx
  6201  		var wire uint64
  6202  		for shift := uint(0); ; shift += 7 {
  6203  			if shift >= 64 {
  6204  				return protohelpers.ErrIntOverflow
  6205  			}
  6206  			if iNdEx >= l {
  6207  				return io.ErrUnexpectedEOF
  6208  			}
  6209  			b := dAtA[iNdEx]
  6210  			iNdEx++
  6211  			wire |= uint64(b&0x7F) << shift
  6212  			if b < 0x80 {
  6213  				break
  6214  			}
  6215  		}
  6216  		fieldNum := int32(wire >> 3)
  6217  		wireType := int(wire & 0x7)
  6218  		if wireType == 4 {
  6219  			return fmt.Errorf("proto: RelationTupleTreeNode: wiretype end group for non-group")
  6220  		}
  6221  		if fieldNum <= 0 {
  6222  			return fmt.Errorf("proto: RelationTupleTreeNode: illegal tag %d (wire type %d)", fieldNum, wire)
  6223  		}
  6224  		switch fieldNum {
  6225  		case 1:
  6226  			if wireType != 2 {
  6227  				return fmt.Errorf("proto: wrong wireType = %d for field IntermediateNode", wireType)
  6228  			}
  6229  			var msglen int
  6230  			for shift := uint(0); ; shift += 7 {
  6231  				if shift >= 64 {
  6232  					return protohelpers.ErrIntOverflow
  6233  				}
  6234  				if iNdEx >= l {
  6235  					return io.ErrUnexpectedEOF
  6236  				}
  6237  				b := dAtA[iNdEx]
  6238  				iNdEx++
  6239  				msglen |= int(b&0x7F) << shift
  6240  				if b < 0x80 {
  6241  					break
  6242  				}
  6243  			}
  6244  			if msglen < 0 {
  6245  				return protohelpers.ErrInvalidLength
  6246  			}
  6247  			postIndex := iNdEx + msglen
  6248  			if postIndex < 0 {
  6249  				return protohelpers.ErrInvalidLength
  6250  			}
  6251  			if postIndex > l {
  6252  				return io.ErrUnexpectedEOF
  6253  			}
  6254  			if oneof, ok := m.NodeType.(*RelationTupleTreeNode_IntermediateNode); ok {
  6255  				if err := oneof.IntermediateNode.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6256  					return err
  6257  				}
  6258  			} else {
  6259  				v := &SetOperationUserset{}
  6260  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6261  					return err
  6262  				}
  6263  				m.NodeType = &RelationTupleTreeNode_IntermediateNode{IntermediateNode: v}
  6264  			}
  6265  			iNdEx = postIndex
  6266  		case 2:
  6267  			if wireType != 2 {
  6268  				return fmt.Errorf("proto: wrong wireType = %d for field LeafNode", wireType)
  6269  			}
  6270  			var msglen int
  6271  			for shift := uint(0); ; shift += 7 {
  6272  				if shift >= 64 {
  6273  					return protohelpers.ErrIntOverflow
  6274  				}
  6275  				if iNdEx >= l {
  6276  					return io.ErrUnexpectedEOF
  6277  				}
  6278  				b := dAtA[iNdEx]
  6279  				iNdEx++
  6280  				msglen |= int(b&0x7F) << shift
  6281  				if b < 0x80 {
  6282  					break
  6283  				}
  6284  			}
  6285  			if msglen < 0 {
  6286  				return protohelpers.ErrInvalidLength
  6287  			}
  6288  			postIndex := iNdEx + msglen
  6289  			if postIndex < 0 {
  6290  				return protohelpers.ErrInvalidLength
  6291  			}
  6292  			if postIndex > l {
  6293  				return io.ErrUnexpectedEOF
  6294  			}
  6295  			if oneof, ok := m.NodeType.(*RelationTupleTreeNode_LeafNode); ok {
  6296  				if err := oneof.LeafNode.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6297  					return err
  6298  				}
  6299  			} else {
  6300  				v := &DirectSubjects{}
  6301  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6302  					return err
  6303  				}
  6304  				m.NodeType = &RelationTupleTreeNode_LeafNode{LeafNode: v}
  6305  			}
  6306  			iNdEx = postIndex
  6307  		case 3:
  6308  			if wireType != 2 {
  6309  				return fmt.Errorf("proto: wrong wireType = %d for field Expanded", wireType)
  6310  			}
  6311  			var msglen int
  6312  			for shift := uint(0); ; shift += 7 {
  6313  				if shift >= 64 {
  6314  					return protohelpers.ErrIntOverflow
  6315  				}
  6316  				if iNdEx >= l {
  6317  					return io.ErrUnexpectedEOF
  6318  				}
  6319  				b := dAtA[iNdEx]
  6320  				iNdEx++
  6321  				msglen |= int(b&0x7F) << shift
  6322  				if b < 0x80 {
  6323  					break
  6324  				}
  6325  			}
  6326  			if msglen < 0 {
  6327  				return protohelpers.ErrInvalidLength
  6328  			}
  6329  			postIndex := iNdEx + msglen
  6330  			if postIndex < 0 {
  6331  				return protohelpers.ErrInvalidLength
  6332  			}
  6333  			if postIndex > l {
  6334  				return io.ErrUnexpectedEOF
  6335  			}
  6336  			if m.Expanded == nil {
  6337  				m.Expanded = &ObjectAndRelation{}
  6338  			}
  6339  			if err := m.Expanded.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6340  				return err
  6341  			}
  6342  			iNdEx = postIndex
  6343  		case 4:
  6344  			if wireType != 2 {
  6345  				return fmt.Errorf("proto: wrong wireType = %d for field CaveatExpression", wireType)
  6346  			}
  6347  			var msglen int
  6348  			for shift := uint(0); ; shift += 7 {
  6349  				if shift >= 64 {
  6350  					return protohelpers.ErrIntOverflow
  6351  				}
  6352  				if iNdEx >= l {
  6353  					return io.ErrUnexpectedEOF
  6354  				}
  6355  				b := dAtA[iNdEx]
  6356  				iNdEx++
  6357  				msglen |= int(b&0x7F) << shift
  6358  				if b < 0x80 {
  6359  					break
  6360  				}
  6361  			}
  6362  			if msglen < 0 {
  6363  				return protohelpers.ErrInvalidLength
  6364  			}
  6365  			postIndex := iNdEx + msglen
  6366  			if postIndex < 0 {
  6367  				return protohelpers.ErrInvalidLength
  6368  			}
  6369  			if postIndex > l {
  6370  				return io.ErrUnexpectedEOF
  6371  			}
  6372  			if m.CaveatExpression == nil {
  6373  				m.CaveatExpression = &CaveatExpression{}
  6374  			}
  6375  			if err := m.CaveatExpression.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6376  				return err
  6377  			}
  6378  			iNdEx = postIndex
  6379  		default:
  6380  			iNdEx = preIndex
  6381  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  6382  			if err != nil {
  6383  				return err
  6384  			}
  6385  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  6386  				return protohelpers.ErrInvalidLength
  6387  			}
  6388  			if (iNdEx + skippy) > l {
  6389  				return io.ErrUnexpectedEOF
  6390  			}
  6391  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  6392  			iNdEx += skippy
  6393  		}
  6394  	}
  6395  
  6396  	if iNdEx > l {
  6397  		return io.ErrUnexpectedEOF
  6398  	}
  6399  	return nil
  6400  }
  6401  func (m *SetOperationUserset) UnmarshalVT(dAtA []byte) error {
  6402  	l := len(dAtA)
  6403  	iNdEx := 0
  6404  	for iNdEx < l {
  6405  		preIndex := iNdEx
  6406  		var wire uint64
  6407  		for shift := uint(0); ; shift += 7 {
  6408  			if shift >= 64 {
  6409  				return protohelpers.ErrIntOverflow
  6410  			}
  6411  			if iNdEx >= l {
  6412  				return io.ErrUnexpectedEOF
  6413  			}
  6414  			b := dAtA[iNdEx]
  6415  			iNdEx++
  6416  			wire |= uint64(b&0x7F) << shift
  6417  			if b < 0x80 {
  6418  				break
  6419  			}
  6420  		}
  6421  		fieldNum := int32(wire >> 3)
  6422  		wireType := int(wire & 0x7)
  6423  		if wireType == 4 {
  6424  			return fmt.Errorf("proto: SetOperationUserset: wiretype end group for non-group")
  6425  		}
  6426  		if fieldNum <= 0 {
  6427  			return fmt.Errorf("proto: SetOperationUserset: illegal tag %d (wire type %d)", fieldNum, wire)
  6428  		}
  6429  		switch fieldNum {
  6430  		case 1:
  6431  			if wireType != 0 {
  6432  				return fmt.Errorf("proto: wrong wireType = %d for field Operation", wireType)
  6433  			}
  6434  			m.Operation = 0
  6435  			for shift := uint(0); ; shift += 7 {
  6436  				if shift >= 64 {
  6437  					return protohelpers.ErrIntOverflow
  6438  				}
  6439  				if iNdEx >= l {
  6440  					return io.ErrUnexpectedEOF
  6441  				}
  6442  				b := dAtA[iNdEx]
  6443  				iNdEx++
  6444  				m.Operation |= SetOperationUserset_Operation(b&0x7F) << shift
  6445  				if b < 0x80 {
  6446  					break
  6447  				}
  6448  			}
  6449  		case 2:
  6450  			if wireType != 2 {
  6451  				return fmt.Errorf("proto: wrong wireType = %d for field ChildNodes", wireType)
  6452  			}
  6453  			var msglen int
  6454  			for shift := uint(0); ; shift += 7 {
  6455  				if shift >= 64 {
  6456  					return protohelpers.ErrIntOverflow
  6457  				}
  6458  				if iNdEx >= l {
  6459  					return io.ErrUnexpectedEOF
  6460  				}
  6461  				b := dAtA[iNdEx]
  6462  				iNdEx++
  6463  				msglen |= int(b&0x7F) << shift
  6464  				if b < 0x80 {
  6465  					break
  6466  				}
  6467  			}
  6468  			if msglen < 0 {
  6469  				return protohelpers.ErrInvalidLength
  6470  			}
  6471  			postIndex := iNdEx + msglen
  6472  			if postIndex < 0 {
  6473  				return protohelpers.ErrInvalidLength
  6474  			}
  6475  			if postIndex > l {
  6476  				return io.ErrUnexpectedEOF
  6477  			}
  6478  			m.ChildNodes = append(m.ChildNodes, &RelationTupleTreeNode{})
  6479  			if err := m.ChildNodes[len(m.ChildNodes)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6480  				return err
  6481  			}
  6482  			iNdEx = postIndex
  6483  		default:
  6484  			iNdEx = preIndex
  6485  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  6486  			if err != nil {
  6487  				return err
  6488  			}
  6489  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  6490  				return protohelpers.ErrInvalidLength
  6491  			}
  6492  			if (iNdEx + skippy) > l {
  6493  				return io.ErrUnexpectedEOF
  6494  			}
  6495  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  6496  			iNdEx += skippy
  6497  		}
  6498  	}
  6499  
  6500  	if iNdEx > l {
  6501  		return io.ErrUnexpectedEOF
  6502  	}
  6503  	return nil
  6504  }
  6505  func (m *DirectSubject) UnmarshalVT(dAtA []byte) error {
  6506  	l := len(dAtA)
  6507  	iNdEx := 0
  6508  	for iNdEx < l {
  6509  		preIndex := iNdEx
  6510  		var wire uint64
  6511  		for shift := uint(0); ; shift += 7 {
  6512  			if shift >= 64 {
  6513  				return protohelpers.ErrIntOverflow
  6514  			}
  6515  			if iNdEx >= l {
  6516  				return io.ErrUnexpectedEOF
  6517  			}
  6518  			b := dAtA[iNdEx]
  6519  			iNdEx++
  6520  			wire |= uint64(b&0x7F) << shift
  6521  			if b < 0x80 {
  6522  				break
  6523  			}
  6524  		}
  6525  		fieldNum := int32(wire >> 3)
  6526  		wireType := int(wire & 0x7)
  6527  		if wireType == 4 {
  6528  			return fmt.Errorf("proto: DirectSubject: wiretype end group for non-group")
  6529  		}
  6530  		if fieldNum <= 0 {
  6531  			return fmt.Errorf("proto: DirectSubject: illegal tag %d (wire type %d)", fieldNum, wire)
  6532  		}
  6533  		switch fieldNum {
  6534  		case 1:
  6535  			if wireType != 2 {
  6536  				return fmt.Errorf("proto: wrong wireType = %d for field Subject", wireType)
  6537  			}
  6538  			var msglen int
  6539  			for shift := uint(0); ; shift += 7 {
  6540  				if shift >= 64 {
  6541  					return protohelpers.ErrIntOverflow
  6542  				}
  6543  				if iNdEx >= l {
  6544  					return io.ErrUnexpectedEOF
  6545  				}
  6546  				b := dAtA[iNdEx]
  6547  				iNdEx++
  6548  				msglen |= int(b&0x7F) << shift
  6549  				if b < 0x80 {
  6550  					break
  6551  				}
  6552  			}
  6553  			if msglen < 0 {
  6554  				return protohelpers.ErrInvalidLength
  6555  			}
  6556  			postIndex := iNdEx + msglen
  6557  			if postIndex < 0 {
  6558  				return protohelpers.ErrInvalidLength
  6559  			}
  6560  			if postIndex > l {
  6561  				return io.ErrUnexpectedEOF
  6562  			}
  6563  			if m.Subject == nil {
  6564  				m.Subject = &ObjectAndRelation{}
  6565  			}
  6566  			if err := m.Subject.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6567  				return err
  6568  			}
  6569  			iNdEx = postIndex
  6570  		case 2:
  6571  			if wireType != 2 {
  6572  				return fmt.Errorf("proto: wrong wireType = %d for field CaveatExpression", wireType)
  6573  			}
  6574  			var msglen int
  6575  			for shift := uint(0); ; shift += 7 {
  6576  				if shift >= 64 {
  6577  					return protohelpers.ErrIntOverflow
  6578  				}
  6579  				if iNdEx >= l {
  6580  					return io.ErrUnexpectedEOF
  6581  				}
  6582  				b := dAtA[iNdEx]
  6583  				iNdEx++
  6584  				msglen |= int(b&0x7F) << shift
  6585  				if b < 0x80 {
  6586  					break
  6587  				}
  6588  			}
  6589  			if msglen < 0 {
  6590  				return protohelpers.ErrInvalidLength
  6591  			}
  6592  			postIndex := iNdEx + msglen
  6593  			if postIndex < 0 {
  6594  				return protohelpers.ErrInvalidLength
  6595  			}
  6596  			if postIndex > l {
  6597  				return io.ErrUnexpectedEOF
  6598  			}
  6599  			if m.CaveatExpression == nil {
  6600  				m.CaveatExpression = &CaveatExpression{}
  6601  			}
  6602  			if err := m.CaveatExpression.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6603  				return err
  6604  			}
  6605  			iNdEx = postIndex
  6606  		default:
  6607  			iNdEx = preIndex
  6608  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  6609  			if err != nil {
  6610  				return err
  6611  			}
  6612  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  6613  				return protohelpers.ErrInvalidLength
  6614  			}
  6615  			if (iNdEx + skippy) > l {
  6616  				return io.ErrUnexpectedEOF
  6617  			}
  6618  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  6619  			iNdEx += skippy
  6620  		}
  6621  	}
  6622  
  6623  	if iNdEx > l {
  6624  		return io.ErrUnexpectedEOF
  6625  	}
  6626  	return nil
  6627  }
  6628  func (m *DirectSubjects) UnmarshalVT(dAtA []byte) error {
  6629  	l := len(dAtA)
  6630  	iNdEx := 0
  6631  	for iNdEx < l {
  6632  		preIndex := iNdEx
  6633  		var wire uint64
  6634  		for shift := uint(0); ; shift += 7 {
  6635  			if shift >= 64 {
  6636  				return protohelpers.ErrIntOverflow
  6637  			}
  6638  			if iNdEx >= l {
  6639  				return io.ErrUnexpectedEOF
  6640  			}
  6641  			b := dAtA[iNdEx]
  6642  			iNdEx++
  6643  			wire |= uint64(b&0x7F) << shift
  6644  			if b < 0x80 {
  6645  				break
  6646  			}
  6647  		}
  6648  		fieldNum := int32(wire >> 3)
  6649  		wireType := int(wire & 0x7)
  6650  		if wireType == 4 {
  6651  			return fmt.Errorf("proto: DirectSubjects: wiretype end group for non-group")
  6652  		}
  6653  		if fieldNum <= 0 {
  6654  			return fmt.Errorf("proto: DirectSubjects: illegal tag %d (wire type %d)", fieldNum, wire)
  6655  		}
  6656  		switch fieldNum {
  6657  		case 1:
  6658  			if wireType != 2 {
  6659  				return fmt.Errorf("proto: wrong wireType = %d for field Subjects", wireType)
  6660  			}
  6661  			var msglen int
  6662  			for shift := uint(0); ; shift += 7 {
  6663  				if shift >= 64 {
  6664  					return protohelpers.ErrIntOverflow
  6665  				}
  6666  				if iNdEx >= l {
  6667  					return io.ErrUnexpectedEOF
  6668  				}
  6669  				b := dAtA[iNdEx]
  6670  				iNdEx++
  6671  				msglen |= int(b&0x7F) << shift
  6672  				if b < 0x80 {
  6673  					break
  6674  				}
  6675  			}
  6676  			if msglen < 0 {
  6677  				return protohelpers.ErrInvalidLength
  6678  			}
  6679  			postIndex := iNdEx + msglen
  6680  			if postIndex < 0 {
  6681  				return protohelpers.ErrInvalidLength
  6682  			}
  6683  			if postIndex > l {
  6684  				return io.ErrUnexpectedEOF
  6685  			}
  6686  			m.Subjects = append(m.Subjects, &DirectSubject{})
  6687  			if err := m.Subjects[len(m.Subjects)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6688  				return err
  6689  			}
  6690  			iNdEx = postIndex
  6691  		default:
  6692  			iNdEx = preIndex
  6693  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  6694  			if err != nil {
  6695  				return err
  6696  			}
  6697  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  6698  				return protohelpers.ErrInvalidLength
  6699  			}
  6700  			if (iNdEx + skippy) > l {
  6701  				return io.ErrUnexpectedEOF
  6702  			}
  6703  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  6704  			iNdEx += skippy
  6705  		}
  6706  	}
  6707  
  6708  	if iNdEx > l {
  6709  		return io.ErrUnexpectedEOF
  6710  	}
  6711  	return nil
  6712  }
  6713  func (m *Metadata) UnmarshalVT(dAtA []byte) error {
  6714  	l := len(dAtA)
  6715  	iNdEx := 0
  6716  	for iNdEx < l {
  6717  		preIndex := iNdEx
  6718  		var wire uint64
  6719  		for shift := uint(0); ; shift += 7 {
  6720  			if shift >= 64 {
  6721  				return protohelpers.ErrIntOverflow
  6722  			}
  6723  			if iNdEx >= l {
  6724  				return io.ErrUnexpectedEOF
  6725  			}
  6726  			b := dAtA[iNdEx]
  6727  			iNdEx++
  6728  			wire |= uint64(b&0x7F) << shift
  6729  			if b < 0x80 {
  6730  				break
  6731  			}
  6732  		}
  6733  		fieldNum := int32(wire >> 3)
  6734  		wireType := int(wire & 0x7)
  6735  		if wireType == 4 {
  6736  			return fmt.Errorf("proto: Metadata: wiretype end group for non-group")
  6737  		}
  6738  		if fieldNum <= 0 {
  6739  			return fmt.Errorf("proto: Metadata: illegal tag %d (wire type %d)", fieldNum, wire)
  6740  		}
  6741  		switch fieldNum {
  6742  		case 1:
  6743  			if wireType != 2 {
  6744  				return fmt.Errorf("proto: wrong wireType = %d for field MetadataMessage", wireType)
  6745  			}
  6746  			var msglen int
  6747  			for shift := uint(0); ; shift += 7 {
  6748  				if shift >= 64 {
  6749  					return protohelpers.ErrIntOverflow
  6750  				}
  6751  				if iNdEx >= l {
  6752  					return io.ErrUnexpectedEOF
  6753  				}
  6754  				b := dAtA[iNdEx]
  6755  				iNdEx++
  6756  				msglen |= int(b&0x7F) << shift
  6757  				if b < 0x80 {
  6758  					break
  6759  				}
  6760  			}
  6761  			if msglen < 0 {
  6762  				return protohelpers.ErrInvalidLength
  6763  			}
  6764  			postIndex := iNdEx + msglen
  6765  			if postIndex < 0 {
  6766  				return protohelpers.ErrInvalidLength
  6767  			}
  6768  			if postIndex > l {
  6769  				return io.ErrUnexpectedEOF
  6770  			}
  6771  			m.MetadataMessage = append(m.MetadataMessage, &anypb.Any{})
  6772  			if err := (*anypb1.Any)(m.MetadataMessage[len(m.MetadataMessage)-1]).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6773  				return err
  6774  			}
  6775  			iNdEx = postIndex
  6776  		default:
  6777  			iNdEx = preIndex
  6778  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  6779  			if err != nil {
  6780  				return err
  6781  			}
  6782  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  6783  				return protohelpers.ErrInvalidLength
  6784  			}
  6785  			if (iNdEx + skippy) > l {
  6786  				return io.ErrUnexpectedEOF
  6787  			}
  6788  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  6789  			iNdEx += skippy
  6790  		}
  6791  	}
  6792  
  6793  	if iNdEx > l {
  6794  		return io.ErrUnexpectedEOF
  6795  	}
  6796  	return nil
  6797  }
  6798  func (m *NamespaceDefinition) UnmarshalVT(dAtA []byte) error {
  6799  	l := len(dAtA)
  6800  	iNdEx := 0
  6801  	for iNdEx < l {
  6802  		preIndex := iNdEx
  6803  		var wire uint64
  6804  		for shift := uint(0); ; shift += 7 {
  6805  			if shift >= 64 {
  6806  				return protohelpers.ErrIntOverflow
  6807  			}
  6808  			if iNdEx >= l {
  6809  				return io.ErrUnexpectedEOF
  6810  			}
  6811  			b := dAtA[iNdEx]
  6812  			iNdEx++
  6813  			wire |= uint64(b&0x7F) << shift
  6814  			if b < 0x80 {
  6815  				break
  6816  			}
  6817  		}
  6818  		fieldNum := int32(wire >> 3)
  6819  		wireType := int(wire & 0x7)
  6820  		if wireType == 4 {
  6821  			return fmt.Errorf("proto: NamespaceDefinition: wiretype end group for non-group")
  6822  		}
  6823  		if fieldNum <= 0 {
  6824  			return fmt.Errorf("proto: NamespaceDefinition: illegal tag %d (wire type %d)", fieldNum, wire)
  6825  		}
  6826  		switch fieldNum {
  6827  		case 1:
  6828  			if wireType != 2 {
  6829  				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
  6830  			}
  6831  			var stringLen uint64
  6832  			for shift := uint(0); ; shift += 7 {
  6833  				if shift >= 64 {
  6834  					return protohelpers.ErrIntOverflow
  6835  				}
  6836  				if iNdEx >= l {
  6837  					return io.ErrUnexpectedEOF
  6838  				}
  6839  				b := dAtA[iNdEx]
  6840  				iNdEx++
  6841  				stringLen |= uint64(b&0x7F) << shift
  6842  				if b < 0x80 {
  6843  					break
  6844  				}
  6845  			}
  6846  			intStringLen := int(stringLen)
  6847  			if intStringLen < 0 {
  6848  				return protohelpers.ErrInvalidLength
  6849  			}
  6850  			postIndex := iNdEx + intStringLen
  6851  			if postIndex < 0 {
  6852  				return protohelpers.ErrInvalidLength
  6853  			}
  6854  			if postIndex > l {
  6855  				return io.ErrUnexpectedEOF
  6856  			}
  6857  			m.Name = string(dAtA[iNdEx:postIndex])
  6858  			iNdEx = postIndex
  6859  		case 2:
  6860  			if wireType != 2 {
  6861  				return fmt.Errorf("proto: wrong wireType = %d for field Relation", wireType)
  6862  			}
  6863  			var msglen int
  6864  			for shift := uint(0); ; shift += 7 {
  6865  				if shift >= 64 {
  6866  					return protohelpers.ErrIntOverflow
  6867  				}
  6868  				if iNdEx >= l {
  6869  					return io.ErrUnexpectedEOF
  6870  				}
  6871  				b := dAtA[iNdEx]
  6872  				iNdEx++
  6873  				msglen |= int(b&0x7F) << shift
  6874  				if b < 0x80 {
  6875  					break
  6876  				}
  6877  			}
  6878  			if msglen < 0 {
  6879  				return protohelpers.ErrInvalidLength
  6880  			}
  6881  			postIndex := iNdEx + msglen
  6882  			if postIndex < 0 {
  6883  				return protohelpers.ErrInvalidLength
  6884  			}
  6885  			if postIndex > l {
  6886  				return io.ErrUnexpectedEOF
  6887  			}
  6888  			m.Relation = append(m.Relation, &Relation{})
  6889  			if err := m.Relation[len(m.Relation)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6890  				return err
  6891  			}
  6892  			iNdEx = postIndex
  6893  		case 3:
  6894  			if wireType != 2 {
  6895  				return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
  6896  			}
  6897  			var msglen int
  6898  			for shift := uint(0); ; shift += 7 {
  6899  				if shift >= 64 {
  6900  					return protohelpers.ErrIntOverflow
  6901  				}
  6902  				if iNdEx >= l {
  6903  					return io.ErrUnexpectedEOF
  6904  				}
  6905  				b := dAtA[iNdEx]
  6906  				iNdEx++
  6907  				msglen |= int(b&0x7F) << shift
  6908  				if b < 0x80 {
  6909  					break
  6910  				}
  6911  			}
  6912  			if msglen < 0 {
  6913  				return protohelpers.ErrInvalidLength
  6914  			}
  6915  			postIndex := iNdEx + msglen
  6916  			if postIndex < 0 {
  6917  				return protohelpers.ErrInvalidLength
  6918  			}
  6919  			if postIndex > l {
  6920  				return io.ErrUnexpectedEOF
  6921  			}
  6922  			if m.Metadata == nil {
  6923  				m.Metadata = &Metadata{}
  6924  			}
  6925  			if err := m.Metadata.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6926  				return err
  6927  			}
  6928  			iNdEx = postIndex
  6929  		case 4:
  6930  			if wireType != 2 {
  6931  				return fmt.Errorf("proto: wrong wireType = %d for field SourcePosition", wireType)
  6932  			}
  6933  			var msglen int
  6934  			for shift := uint(0); ; shift += 7 {
  6935  				if shift >= 64 {
  6936  					return protohelpers.ErrIntOverflow
  6937  				}
  6938  				if iNdEx >= l {
  6939  					return io.ErrUnexpectedEOF
  6940  				}
  6941  				b := dAtA[iNdEx]
  6942  				iNdEx++
  6943  				msglen |= int(b&0x7F) << shift
  6944  				if b < 0x80 {
  6945  					break
  6946  				}
  6947  			}
  6948  			if msglen < 0 {
  6949  				return protohelpers.ErrInvalidLength
  6950  			}
  6951  			postIndex := iNdEx + msglen
  6952  			if postIndex < 0 {
  6953  				return protohelpers.ErrInvalidLength
  6954  			}
  6955  			if postIndex > l {
  6956  				return io.ErrUnexpectedEOF
  6957  			}
  6958  			if m.SourcePosition == nil {
  6959  				m.SourcePosition = &SourcePosition{}
  6960  			}
  6961  			if err := m.SourcePosition.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  6962  				return err
  6963  			}
  6964  			iNdEx = postIndex
  6965  		default:
  6966  			iNdEx = preIndex
  6967  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  6968  			if err != nil {
  6969  				return err
  6970  			}
  6971  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  6972  				return protohelpers.ErrInvalidLength
  6973  			}
  6974  			if (iNdEx + skippy) > l {
  6975  				return io.ErrUnexpectedEOF
  6976  			}
  6977  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  6978  			iNdEx += skippy
  6979  		}
  6980  	}
  6981  
  6982  	if iNdEx > l {
  6983  		return io.ErrUnexpectedEOF
  6984  	}
  6985  	return nil
  6986  }
  6987  func (m *Relation) UnmarshalVT(dAtA []byte) error {
  6988  	l := len(dAtA)
  6989  	iNdEx := 0
  6990  	for iNdEx < l {
  6991  		preIndex := iNdEx
  6992  		var wire uint64
  6993  		for shift := uint(0); ; shift += 7 {
  6994  			if shift >= 64 {
  6995  				return protohelpers.ErrIntOverflow
  6996  			}
  6997  			if iNdEx >= l {
  6998  				return io.ErrUnexpectedEOF
  6999  			}
  7000  			b := dAtA[iNdEx]
  7001  			iNdEx++
  7002  			wire |= uint64(b&0x7F) << shift
  7003  			if b < 0x80 {
  7004  				break
  7005  			}
  7006  		}
  7007  		fieldNum := int32(wire >> 3)
  7008  		wireType := int(wire & 0x7)
  7009  		if wireType == 4 {
  7010  			return fmt.Errorf("proto: Relation: wiretype end group for non-group")
  7011  		}
  7012  		if fieldNum <= 0 {
  7013  			return fmt.Errorf("proto: Relation: illegal tag %d (wire type %d)", fieldNum, wire)
  7014  		}
  7015  		switch fieldNum {
  7016  		case 1:
  7017  			if wireType != 2 {
  7018  				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
  7019  			}
  7020  			var stringLen uint64
  7021  			for shift := uint(0); ; shift += 7 {
  7022  				if shift >= 64 {
  7023  					return protohelpers.ErrIntOverflow
  7024  				}
  7025  				if iNdEx >= l {
  7026  					return io.ErrUnexpectedEOF
  7027  				}
  7028  				b := dAtA[iNdEx]
  7029  				iNdEx++
  7030  				stringLen |= uint64(b&0x7F) << shift
  7031  				if b < 0x80 {
  7032  					break
  7033  				}
  7034  			}
  7035  			intStringLen := int(stringLen)
  7036  			if intStringLen < 0 {
  7037  				return protohelpers.ErrInvalidLength
  7038  			}
  7039  			postIndex := iNdEx + intStringLen
  7040  			if postIndex < 0 {
  7041  				return protohelpers.ErrInvalidLength
  7042  			}
  7043  			if postIndex > l {
  7044  				return io.ErrUnexpectedEOF
  7045  			}
  7046  			m.Name = string(dAtA[iNdEx:postIndex])
  7047  			iNdEx = postIndex
  7048  		case 2:
  7049  			if wireType != 2 {
  7050  				return fmt.Errorf("proto: wrong wireType = %d for field UsersetRewrite", wireType)
  7051  			}
  7052  			var msglen int
  7053  			for shift := uint(0); ; shift += 7 {
  7054  				if shift >= 64 {
  7055  					return protohelpers.ErrIntOverflow
  7056  				}
  7057  				if iNdEx >= l {
  7058  					return io.ErrUnexpectedEOF
  7059  				}
  7060  				b := dAtA[iNdEx]
  7061  				iNdEx++
  7062  				msglen |= int(b&0x7F) << shift
  7063  				if b < 0x80 {
  7064  					break
  7065  				}
  7066  			}
  7067  			if msglen < 0 {
  7068  				return protohelpers.ErrInvalidLength
  7069  			}
  7070  			postIndex := iNdEx + msglen
  7071  			if postIndex < 0 {
  7072  				return protohelpers.ErrInvalidLength
  7073  			}
  7074  			if postIndex > l {
  7075  				return io.ErrUnexpectedEOF
  7076  			}
  7077  			if m.UsersetRewrite == nil {
  7078  				m.UsersetRewrite = &UsersetRewrite{}
  7079  			}
  7080  			if err := m.UsersetRewrite.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  7081  				return err
  7082  			}
  7083  			iNdEx = postIndex
  7084  		case 3:
  7085  			if wireType != 2 {
  7086  				return fmt.Errorf("proto: wrong wireType = %d for field TypeInformation", wireType)
  7087  			}
  7088  			var msglen int
  7089  			for shift := uint(0); ; shift += 7 {
  7090  				if shift >= 64 {
  7091  					return protohelpers.ErrIntOverflow
  7092  				}
  7093  				if iNdEx >= l {
  7094  					return io.ErrUnexpectedEOF
  7095  				}
  7096  				b := dAtA[iNdEx]
  7097  				iNdEx++
  7098  				msglen |= int(b&0x7F) << shift
  7099  				if b < 0x80 {
  7100  					break
  7101  				}
  7102  			}
  7103  			if msglen < 0 {
  7104  				return protohelpers.ErrInvalidLength
  7105  			}
  7106  			postIndex := iNdEx + msglen
  7107  			if postIndex < 0 {
  7108  				return protohelpers.ErrInvalidLength
  7109  			}
  7110  			if postIndex > l {
  7111  				return io.ErrUnexpectedEOF
  7112  			}
  7113  			if m.TypeInformation == nil {
  7114  				m.TypeInformation = &TypeInformation{}
  7115  			}
  7116  			if err := m.TypeInformation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  7117  				return err
  7118  			}
  7119  			iNdEx = postIndex
  7120  		case 4:
  7121  			if wireType != 2 {
  7122  				return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
  7123  			}
  7124  			var msglen int
  7125  			for shift := uint(0); ; shift += 7 {
  7126  				if shift >= 64 {
  7127  					return protohelpers.ErrIntOverflow
  7128  				}
  7129  				if iNdEx >= l {
  7130  					return io.ErrUnexpectedEOF
  7131  				}
  7132  				b := dAtA[iNdEx]
  7133  				iNdEx++
  7134  				msglen |= int(b&0x7F) << shift
  7135  				if b < 0x80 {
  7136  					break
  7137  				}
  7138  			}
  7139  			if msglen < 0 {
  7140  				return protohelpers.ErrInvalidLength
  7141  			}
  7142  			postIndex := iNdEx + msglen
  7143  			if postIndex < 0 {
  7144  				return protohelpers.ErrInvalidLength
  7145  			}
  7146  			if postIndex > l {
  7147  				return io.ErrUnexpectedEOF
  7148  			}
  7149  			if m.Metadata == nil {
  7150  				m.Metadata = &Metadata{}
  7151  			}
  7152  			if err := m.Metadata.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  7153  				return err
  7154  			}
  7155  			iNdEx = postIndex
  7156  		case 5:
  7157  			if wireType != 2 {
  7158  				return fmt.Errorf("proto: wrong wireType = %d for field SourcePosition", wireType)
  7159  			}
  7160  			var msglen int
  7161  			for shift := uint(0); ; shift += 7 {
  7162  				if shift >= 64 {
  7163  					return protohelpers.ErrIntOverflow
  7164  				}
  7165  				if iNdEx >= l {
  7166  					return io.ErrUnexpectedEOF
  7167  				}
  7168  				b := dAtA[iNdEx]
  7169  				iNdEx++
  7170  				msglen |= int(b&0x7F) << shift
  7171  				if b < 0x80 {
  7172  					break
  7173  				}
  7174  			}
  7175  			if msglen < 0 {
  7176  				return protohelpers.ErrInvalidLength
  7177  			}
  7178  			postIndex := iNdEx + msglen
  7179  			if postIndex < 0 {
  7180  				return protohelpers.ErrInvalidLength
  7181  			}
  7182  			if postIndex > l {
  7183  				return io.ErrUnexpectedEOF
  7184  			}
  7185  			if m.SourcePosition == nil {
  7186  				m.SourcePosition = &SourcePosition{}
  7187  			}
  7188  			if err := m.SourcePosition.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  7189  				return err
  7190  			}
  7191  			iNdEx = postIndex
  7192  		case 6:
  7193  			if wireType != 2 {
  7194  				return fmt.Errorf("proto: wrong wireType = %d for field AliasingRelation", wireType)
  7195  			}
  7196  			var stringLen uint64
  7197  			for shift := uint(0); ; shift += 7 {
  7198  				if shift >= 64 {
  7199  					return protohelpers.ErrIntOverflow
  7200  				}
  7201  				if iNdEx >= l {
  7202  					return io.ErrUnexpectedEOF
  7203  				}
  7204  				b := dAtA[iNdEx]
  7205  				iNdEx++
  7206  				stringLen |= uint64(b&0x7F) << shift
  7207  				if b < 0x80 {
  7208  					break
  7209  				}
  7210  			}
  7211  			intStringLen := int(stringLen)
  7212  			if intStringLen < 0 {
  7213  				return protohelpers.ErrInvalidLength
  7214  			}
  7215  			postIndex := iNdEx + intStringLen
  7216  			if postIndex < 0 {
  7217  				return protohelpers.ErrInvalidLength
  7218  			}
  7219  			if postIndex > l {
  7220  				return io.ErrUnexpectedEOF
  7221  			}
  7222  			m.AliasingRelation = string(dAtA[iNdEx:postIndex])
  7223  			iNdEx = postIndex
  7224  		case 7:
  7225  			if wireType != 2 {
  7226  				return fmt.Errorf("proto: wrong wireType = %d for field CanonicalCacheKey", wireType)
  7227  			}
  7228  			var stringLen uint64
  7229  			for shift := uint(0); ; shift += 7 {
  7230  				if shift >= 64 {
  7231  					return protohelpers.ErrIntOverflow
  7232  				}
  7233  				if iNdEx >= l {
  7234  					return io.ErrUnexpectedEOF
  7235  				}
  7236  				b := dAtA[iNdEx]
  7237  				iNdEx++
  7238  				stringLen |= uint64(b&0x7F) << shift
  7239  				if b < 0x80 {
  7240  					break
  7241  				}
  7242  			}
  7243  			intStringLen := int(stringLen)
  7244  			if intStringLen < 0 {
  7245  				return protohelpers.ErrInvalidLength
  7246  			}
  7247  			postIndex := iNdEx + intStringLen
  7248  			if postIndex < 0 {
  7249  				return protohelpers.ErrInvalidLength
  7250  			}
  7251  			if postIndex > l {
  7252  				return io.ErrUnexpectedEOF
  7253  			}
  7254  			m.CanonicalCacheKey = string(dAtA[iNdEx:postIndex])
  7255  			iNdEx = postIndex
  7256  		default:
  7257  			iNdEx = preIndex
  7258  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  7259  			if err != nil {
  7260  				return err
  7261  			}
  7262  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  7263  				return protohelpers.ErrInvalidLength
  7264  			}
  7265  			if (iNdEx + skippy) > l {
  7266  				return io.ErrUnexpectedEOF
  7267  			}
  7268  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  7269  			iNdEx += skippy
  7270  		}
  7271  	}
  7272  
  7273  	if iNdEx > l {
  7274  		return io.ErrUnexpectedEOF
  7275  	}
  7276  	return nil
  7277  }
  7278  func (m *ReachabilityGraph) UnmarshalVT(dAtA []byte) error {
  7279  	l := len(dAtA)
  7280  	iNdEx := 0
  7281  	for iNdEx < l {
  7282  		preIndex := iNdEx
  7283  		var wire uint64
  7284  		for shift := uint(0); ; shift += 7 {
  7285  			if shift >= 64 {
  7286  				return protohelpers.ErrIntOverflow
  7287  			}
  7288  			if iNdEx >= l {
  7289  				return io.ErrUnexpectedEOF
  7290  			}
  7291  			b := dAtA[iNdEx]
  7292  			iNdEx++
  7293  			wire |= uint64(b&0x7F) << shift
  7294  			if b < 0x80 {
  7295  				break
  7296  			}
  7297  		}
  7298  		fieldNum := int32(wire >> 3)
  7299  		wireType := int(wire & 0x7)
  7300  		if wireType == 4 {
  7301  			return fmt.Errorf("proto: ReachabilityGraph: wiretype end group for non-group")
  7302  		}
  7303  		if fieldNum <= 0 {
  7304  			return fmt.Errorf("proto: ReachabilityGraph: illegal tag %d (wire type %d)", fieldNum, wire)
  7305  		}
  7306  		switch fieldNum {
  7307  		case 1:
  7308  			if wireType != 2 {
  7309  				return fmt.Errorf("proto: wrong wireType = %d for field EntrypointsBySubjectType", wireType)
  7310  			}
  7311  			var msglen int
  7312  			for shift := uint(0); ; shift += 7 {
  7313  				if shift >= 64 {
  7314  					return protohelpers.ErrIntOverflow
  7315  				}
  7316  				if iNdEx >= l {
  7317  					return io.ErrUnexpectedEOF
  7318  				}
  7319  				b := dAtA[iNdEx]
  7320  				iNdEx++
  7321  				msglen |= int(b&0x7F) << shift
  7322  				if b < 0x80 {
  7323  					break
  7324  				}
  7325  			}
  7326  			if msglen < 0 {
  7327  				return protohelpers.ErrInvalidLength
  7328  			}
  7329  			postIndex := iNdEx + msglen
  7330  			if postIndex < 0 {
  7331  				return protohelpers.ErrInvalidLength
  7332  			}
  7333  			if postIndex > l {
  7334  				return io.ErrUnexpectedEOF
  7335  			}
  7336  			if m.EntrypointsBySubjectType == nil {
  7337  				m.EntrypointsBySubjectType = make(map[string]*ReachabilityEntrypoints)
  7338  			}
  7339  			var mapkey string
  7340  			var mapvalue *ReachabilityEntrypoints
  7341  			for iNdEx < postIndex {
  7342  				entryPreIndex := iNdEx
  7343  				var wire uint64
  7344  				for shift := uint(0); ; shift += 7 {
  7345  					if shift >= 64 {
  7346  						return protohelpers.ErrIntOverflow
  7347  					}
  7348  					if iNdEx >= l {
  7349  						return io.ErrUnexpectedEOF
  7350  					}
  7351  					b := dAtA[iNdEx]
  7352  					iNdEx++
  7353  					wire |= uint64(b&0x7F) << shift
  7354  					if b < 0x80 {
  7355  						break
  7356  					}
  7357  				}
  7358  				fieldNum := int32(wire >> 3)
  7359  				if fieldNum == 1 {
  7360  					var stringLenmapkey uint64
  7361  					for shift := uint(0); ; shift += 7 {
  7362  						if shift >= 64 {
  7363  							return protohelpers.ErrIntOverflow
  7364  						}
  7365  						if iNdEx >= l {
  7366  							return io.ErrUnexpectedEOF
  7367  						}
  7368  						b := dAtA[iNdEx]
  7369  						iNdEx++
  7370  						stringLenmapkey |= uint64(b&0x7F) << shift
  7371  						if b < 0x80 {
  7372  							break
  7373  						}
  7374  					}
  7375  					intStringLenmapkey := int(stringLenmapkey)
  7376  					if intStringLenmapkey < 0 {
  7377  						return protohelpers.ErrInvalidLength
  7378  					}
  7379  					postStringIndexmapkey := iNdEx + intStringLenmapkey
  7380  					if postStringIndexmapkey < 0 {
  7381  						return protohelpers.ErrInvalidLength
  7382  					}
  7383  					if postStringIndexmapkey > l {
  7384  						return io.ErrUnexpectedEOF
  7385  					}
  7386  					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
  7387  					iNdEx = postStringIndexmapkey
  7388  				} else if fieldNum == 2 {
  7389  					var mapmsglen int
  7390  					for shift := uint(0); ; shift += 7 {
  7391  						if shift >= 64 {
  7392  							return protohelpers.ErrIntOverflow
  7393  						}
  7394  						if iNdEx >= l {
  7395  							return io.ErrUnexpectedEOF
  7396  						}
  7397  						b := dAtA[iNdEx]
  7398  						iNdEx++
  7399  						mapmsglen |= int(b&0x7F) << shift
  7400  						if b < 0x80 {
  7401  							break
  7402  						}
  7403  					}
  7404  					if mapmsglen < 0 {
  7405  						return protohelpers.ErrInvalidLength
  7406  					}
  7407  					postmsgIndex := iNdEx + mapmsglen
  7408  					if postmsgIndex < 0 {
  7409  						return protohelpers.ErrInvalidLength
  7410  					}
  7411  					if postmsgIndex > l {
  7412  						return io.ErrUnexpectedEOF
  7413  					}
  7414  					mapvalue = &ReachabilityEntrypoints{}
  7415  					if err := mapvalue.UnmarshalVT(dAtA[iNdEx:postmsgIndex]); err != nil {
  7416  						return err
  7417  					}
  7418  					iNdEx = postmsgIndex
  7419  				} else {
  7420  					iNdEx = entryPreIndex
  7421  					skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  7422  					if err != nil {
  7423  						return err
  7424  					}
  7425  					if (skippy < 0) || (iNdEx+skippy) < 0 {
  7426  						return protohelpers.ErrInvalidLength
  7427  					}
  7428  					if (iNdEx + skippy) > postIndex {
  7429  						return io.ErrUnexpectedEOF
  7430  					}
  7431  					iNdEx += skippy
  7432  				}
  7433  			}
  7434  			m.EntrypointsBySubjectType[mapkey] = mapvalue
  7435  			iNdEx = postIndex
  7436  		case 2:
  7437  			if wireType != 2 {
  7438  				return fmt.Errorf("proto: wrong wireType = %d for field EntrypointsBySubjectRelation", wireType)
  7439  			}
  7440  			var msglen int
  7441  			for shift := uint(0); ; shift += 7 {
  7442  				if shift >= 64 {
  7443  					return protohelpers.ErrIntOverflow
  7444  				}
  7445  				if iNdEx >= l {
  7446  					return io.ErrUnexpectedEOF
  7447  				}
  7448  				b := dAtA[iNdEx]
  7449  				iNdEx++
  7450  				msglen |= int(b&0x7F) << shift
  7451  				if b < 0x80 {
  7452  					break
  7453  				}
  7454  			}
  7455  			if msglen < 0 {
  7456  				return protohelpers.ErrInvalidLength
  7457  			}
  7458  			postIndex := iNdEx + msglen
  7459  			if postIndex < 0 {
  7460  				return protohelpers.ErrInvalidLength
  7461  			}
  7462  			if postIndex > l {
  7463  				return io.ErrUnexpectedEOF
  7464  			}
  7465  			if m.EntrypointsBySubjectRelation == nil {
  7466  				m.EntrypointsBySubjectRelation = make(map[string]*ReachabilityEntrypoints)
  7467  			}
  7468  			var mapkey string
  7469  			var mapvalue *ReachabilityEntrypoints
  7470  			for iNdEx < postIndex {
  7471  				entryPreIndex := iNdEx
  7472  				var wire uint64
  7473  				for shift := uint(0); ; shift += 7 {
  7474  					if shift >= 64 {
  7475  						return protohelpers.ErrIntOverflow
  7476  					}
  7477  					if iNdEx >= l {
  7478  						return io.ErrUnexpectedEOF
  7479  					}
  7480  					b := dAtA[iNdEx]
  7481  					iNdEx++
  7482  					wire |= uint64(b&0x7F) << shift
  7483  					if b < 0x80 {
  7484  						break
  7485  					}
  7486  				}
  7487  				fieldNum := int32(wire >> 3)
  7488  				if fieldNum == 1 {
  7489  					var stringLenmapkey uint64
  7490  					for shift := uint(0); ; shift += 7 {
  7491  						if shift >= 64 {
  7492  							return protohelpers.ErrIntOverflow
  7493  						}
  7494  						if iNdEx >= l {
  7495  							return io.ErrUnexpectedEOF
  7496  						}
  7497  						b := dAtA[iNdEx]
  7498  						iNdEx++
  7499  						stringLenmapkey |= uint64(b&0x7F) << shift
  7500  						if b < 0x80 {
  7501  							break
  7502  						}
  7503  					}
  7504  					intStringLenmapkey := int(stringLenmapkey)
  7505  					if intStringLenmapkey < 0 {
  7506  						return protohelpers.ErrInvalidLength
  7507  					}
  7508  					postStringIndexmapkey := iNdEx + intStringLenmapkey
  7509  					if postStringIndexmapkey < 0 {
  7510  						return protohelpers.ErrInvalidLength
  7511  					}
  7512  					if postStringIndexmapkey > l {
  7513  						return io.ErrUnexpectedEOF
  7514  					}
  7515  					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
  7516  					iNdEx = postStringIndexmapkey
  7517  				} else if fieldNum == 2 {
  7518  					var mapmsglen int
  7519  					for shift := uint(0); ; shift += 7 {
  7520  						if shift >= 64 {
  7521  							return protohelpers.ErrIntOverflow
  7522  						}
  7523  						if iNdEx >= l {
  7524  							return io.ErrUnexpectedEOF
  7525  						}
  7526  						b := dAtA[iNdEx]
  7527  						iNdEx++
  7528  						mapmsglen |= int(b&0x7F) << shift
  7529  						if b < 0x80 {
  7530  							break
  7531  						}
  7532  					}
  7533  					if mapmsglen < 0 {
  7534  						return protohelpers.ErrInvalidLength
  7535  					}
  7536  					postmsgIndex := iNdEx + mapmsglen
  7537  					if postmsgIndex < 0 {
  7538  						return protohelpers.ErrInvalidLength
  7539  					}
  7540  					if postmsgIndex > l {
  7541  						return io.ErrUnexpectedEOF
  7542  					}
  7543  					mapvalue = &ReachabilityEntrypoints{}
  7544  					if err := mapvalue.UnmarshalVT(dAtA[iNdEx:postmsgIndex]); err != nil {
  7545  						return err
  7546  					}
  7547  					iNdEx = postmsgIndex
  7548  				} else {
  7549  					iNdEx = entryPreIndex
  7550  					skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  7551  					if err != nil {
  7552  						return err
  7553  					}
  7554  					if (skippy < 0) || (iNdEx+skippy) < 0 {
  7555  						return protohelpers.ErrInvalidLength
  7556  					}
  7557  					if (iNdEx + skippy) > postIndex {
  7558  						return io.ErrUnexpectedEOF
  7559  					}
  7560  					iNdEx += skippy
  7561  				}
  7562  			}
  7563  			m.EntrypointsBySubjectRelation[mapkey] = mapvalue
  7564  			iNdEx = postIndex
  7565  		default:
  7566  			iNdEx = preIndex
  7567  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  7568  			if err != nil {
  7569  				return err
  7570  			}
  7571  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  7572  				return protohelpers.ErrInvalidLength
  7573  			}
  7574  			if (iNdEx + skippy) > l {
  7575  				return io.ErrUnexpectedEOF
  7576  			}
  7577  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  7578  			iNdEx += skippy
  7579  		}
  7580  	}
  7581  
  7582  	if iNdEx > l {
  7583  		return io.ErrUnexpectedEOF
  7584  	}
  7585  	return nil
  7586  }
  7587  func (m *ReachabilityEntrypoints) UnmarshalVT(dAtA []byte) error {
  7588  	l := len(dAtA)
  7589  	iNdEx := 0
  7590  	for iNdEx < l {
  7591  		preIndex := iNdEx
  7592  		var wire uint64
  7593  		for shift := uint(0); ; shift += 7 {
  7594  			if shift >= 64 {
  7595  				return protohelpers.ErrIntOverflow
  7596  			}
  7597  			if iNdEx >= l {
  7598  				return io.ErrUnexpectedEOF
  7599  			}
  7600  			b := dAtA[iNdEx]
  7601  			iNdEx++
  7602  			wire |= uint64(b&0x7F) << shift
  7603  			if b < 0x80 {
  7604  				break
  7605  			}
  7606  		}
  7607  		fieldNum := int32(wire >> 3)
  7608  		wireType := int(wire & 0x7)
  7609  		if wireType == 4 {
  7610  			return fmt.Errorf("proto: ReachabilityEntrypoints: wiretype end group for non-group")
  7611  		}
  7612  		if fieldNum <= 0 {
  7613  			return fmt.Errorf("proto: ReachabilityEntrypoints: illegal tag %d (wire type %d)", fieldNum, wire)
  7614  		}
  7615  		switch fieldNum {
  7616  		case 1:
  7617  			if wireType != 2 {
  7618  				return fmt.Errorf("proto: wrong wireType = %d for field Entrypoints", wireType)
  7619  			}
  7620  			var msglen int
  7621  			for shift := uint(0); ; shift += 7 {
  7622  				if shift >= 64 {
  7623  					return protohelpers.ErrIntOverflow
  7624  				}
  7625  				if iNdEx >= l {
  7626  					return io.ErrUnexpectedEOF
  7627  				}
  7628  				b := dAtA[iNdEx]
  7629  				iNdEx++
  7630  				msglen |= int(b&0x7F) << shift
  7631  				if b < 0x80 {
  7632  					break
  7633  				}
  7634  			}
  7635  			if msglen < 0 {
  7636  				return protohelpers.ErrInvalidLength
  7637  			}
  7638  			postIndex := iNdEx + msglen
  7639  			if postIndex < 0 {
  7640  				return protohelpers.ErrInvalidLength
  7641  			}
  7642  			if postIndex > l {
  7643  				return io.ErrUnexpectedEOF
  7644  			}
  7645  			m.Entrypoints = append(m.Entrypoints, &ReachabilityEntrypoint{})
  7646  			if err := m.Entrypoints[len(m.Entrypoints)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  7647  				return err
  7648  			}
  7649  			iNdEx = postIndex
  7650  		case 2:
  7651  			if wireType != 2 {
  7652  				return fmt.Errorf("proto: wrong wireType = %d for field SubjectType", wireType)
  7653  			}
  7654  			var stringLen uint64
  7655  			for shift := uint(0); ; shift += 7 {
  7656  				if shift >= 64 {
  7657  					return protohelpers.ErrIntOverflow
  7658  				}
  7659  				if iNdEx >= l {
  7660  					return io.ErrUnexpectedEOF
  7661  				}
  7662  				b := dAtA[iNdEx]
  7663  				iNdEx++
  7664  				stringLen |= uint64(b&0x7F) << shift
  7665  				if b < 0x80 {
  7666  					break
  7667  				}
  7668  			}
  7669  			intStringLen := int(stringLen)
  7670  			if intStringLen < 0 {
  7671  				return protohelpers.ErrInvalidLength
  7672  			}
  7673  			postIndex := iNdEx + intStringLen
  7674  			if postIndex < 0 {
  7675  				return protohelpers.ErrInvalidLength
  7676  			}
  7677  			if postIndex > l {
  7678  				return io.ErrUnexpectedEOF
  7679  			}
  7680  			m.SubjectType = string(dAtA[iNdEx:postIndex])
  7681  			iNdEx = postIndex
  7682  		case 3:
  7683  			if wireType != 2 {
  7684  				return fmt.Errorf("proto: wrong wireType = %d for field SubjectRelation", wireType)
  7685  			}
  7686  			var msglen int
  7687  			for shift := uint(0); ; shift += 7 {
  7688  				if shift >= 64 {
  7689  					return protohelpers.ErrIntOverflow
  7690  				}
  7691  				if iNdEx >= l {
  7692  					return io.ErrUnexpectedEOF
  7693  				}
  7694  				b := dAtA[iNdEx]
  7695  				iNdEx++
  7696  				msglen |= int(b&0x7F) << shift
  7697  				if b < 0x80 {
  7698  					break
  7699  				}
  7700  			}
  7701  			if msglen < 0 {
  7702  				return protohelpers.ErrInvalidLength
  7703  			}
  7704  			postIndex := iNdEx + msglen
  7705  			if postIndex < 0 {
  7706  				return protohelpers.ErrInvalidLength
  7707  			}
  7708  			if postIndex > l {
  7709  				return io.ErrUnexpectedEOF
  7710  			}
  7711  			if m.SubjectRelation == nil {
  7712  				m.SubjectRelation = &RelationReference{}
  7713  			}
  7714  			if err := m.SubjectRelation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  7715  				return err
  7716  			}
  7717  			iNdEx = postIndex
  7718  		default:
  7719  			iNdEx = preIndex
  7720  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  7721  			if err != nil {
  7722  				return err
  7723  			}
  7724  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  7725  				return protohelpers.ErrInvalidLength
  7726  			}
  7727  			if (iNdEx + skippy) > l {
  7728  				return io.ErrUnexpectedEOF
  7729  			}
  7730  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  7731  			iNdEx += skippy
  7732  		}
  7733  	}
  7734  
  7735  	if iNdEx > l {
  7736  		return io.ErrUnexpectedEOF
  7737  	}
  7738  	return nil
  7739  }
  7740  func (m *ReachabilityEntrypoint) UnmarshalVT(dAtA []byte) error {
  7741  	l := len(dAtA)
  7742  	iNdEx := 0
  7743  	for iNdEx < l {
  7744  		preIndex := iNdEx
  7745  		var wire uint64
  7746  		for shift := uint(0); ; shift += 7 {
  7747  			if shift >= 64 {
  7748  				return protohelpers.ErrIntOverflow
  7749  			}
  7750  			if iNdEx >= l {
  7751  				return io.ErrUnexpectedEOF
  7752  			}
  7753  			b := dAtA[iNdEx]
  7754  			iNdEx++
  7755  			wire |= uint64(b&0x7F) << shift
  7756  			if b < 0x80 {
  7757  				break
  7758  			}
  7759  		}
  7760  		fieldNum := int32(wire >> 3)
  7761  		wireType := int(wire & 0x7)
  7762  		if wireType == 4 {
  7763  			return fmt.Errorf("proto: ReachabilityEntrypoint: wiretype end group for non-group")
  7764  		}
  7765  		if fieldNum <= 0 {
  7766  			return fmt.Errorf("proto: ReachabilityEntrypoint: illegal tag %d (wire type %d)", fieldNum, wire)
  7767  		}
  7768  		switch fieldNum {
  7769  		case 1:
  7770  			if wireType != 0 {
  7771  				return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType)
  7772  			}
  7773  			m.Kind = 0
  7774  			for shift := uint(0); ; shift += 7 {
  7775  				if shift >= 64 {
  7776  					return protohelpers.ErrIntOverflow
  7777  				}
  7778  				if iNdEx >= l {
  7779  					return io.ErrUnexpectedEOF
  7780  				}
  7781  				b := dAtA[iNdEx]
  7782  				iNdEx++
  7783  				m.Kind |= ReachabilityEntrypoint_ReachabilityEntrypointKind(b&0x7F) << shift
  7784  				if b < 0x80 {
  7785  					break
  7786  				}
  7787  			}
  7788  		case 2:
  7789  			if wireType != 2 {
  7790  				return fmt.Errorf("proto: wrong wireType = %d for field TargetRelation", wireType)
  7791  			}
  7792  			var msglen int
  7793  			for shift := uint(0); ; shift += 7 {
  7794  				if shift >= 64 {
  7795  					return protohelpers.ErrIntOverflow
  7796  				}
  7797  				if iNdEx >= l {
  7798  					return io.ErrUnexpectedEOF
  7799  				}
  7800  				b := dAtA[iNdEx]
  7801  				iNdEx++
  7802  				msglen |= int(b&0x7F) << shift
  7803  				if b < 0x80 {
  7804  					break
  7805  				}
  7806  			}
  7807  			if msglen < 0 {
  7808  				return protohelpers.ErrInvalidLength
  7809  			}
  7810  			postIndex := iNdEx + msglen
  7811  			if postIndex < 0 {
  7812  				return protohelpers.ErrInvalidLength
  7813  			}
  7814  			if postIndex > l {
  7815  				return io.ErrUnexpectedEOF
  7816  			}
  7817  			if m.TargetRelation == nil {
  7818  				m.TargetRelation = &RelationReference{}
  7819  			}
  7820  			if err := m.TargetRelation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  7821  				return err
  7822  			}
  7823  			iNdEx = postIndex
  7824  		case 4:
  7825  			if wireType != 0 {
  7826  				return fmt.Errorf("proto: wrong wireType = %d for field ResultStatus", wireType)
  7827  			}
  7828  			m.ResultStatus = 0
  7829  			for shift := uint(0); ; shift += 7 {
  7830  				if shift >= 64 {
  7831  					return protohelpers.ErrIntOverflow
  7832  				}
  7833  				if iNdEx >= l {
  7834  					return io.ErrUnexpectedEOF
  7835  				}
  7836  				b := dAtA[iNdEx]
  7837  				iNdEx++
  7838  				m.ResultStatus |= ReachabilityEntrypoint_EntrypointResultStatus(b&0x7F) << shift
  7839  				if b < 0x80 {
  7840  					break
  7841  				}
  7842  			}
  7843  		case 5:
  7844  			if wireType != 2 {
  7845  				return fmt.Errorf("proto: wrong wireType = %d for field TuplesetRelation", wireType)
  7846  			}
  7847  			var stringLen uint64
  7848  			for shift := uint(0); ; shift += 7 {
  7849  				if shift >= 64 {
  7850  					return protohelpers.ErrIntOverflow
  7851  				}
  7852  				if iNdEx >= l {
  7853  					return io.ErrUnexpectedEOF
  7854  				}
  7855  				b := dAtA[iNdEx]
  7856  				iNdEx++
  7857  				stringLen |= uint64(b&0x7F) << shift
  7858  				if b < 0x80 {
  7859  					break
  7860  				}
  7861  			}
  7862  			intStringLen := int(stringLen)
  7863  			if intStringLen < 0 {
  7864  				return protohelpers.ErrInvalidLength
  7865  			}
  7866  			postIndex := iNdEx + intStringLen
  7867  			if postIndex < 0 {
  7868  				return protohelpers.ErrInvalidLength
  7869  			}
  7870  			if postIndex > l {
  7871  				return io.ErrUnexpectedEOF
  7872  			}
  7873  			m.TuplesetRelation = string(dAtA[iNdEx:postIndex])
  7874  			iNdEx = postIndex
  7875  		default:
  7876  			iNdEx = preIndex
  7877  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  7878  			if err != nil {
  7879  				return err
  7880  			}
  7881  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  7882  				return protohelpers.ErrInvalidLength
  7883  			}
  7884  			if (iNdEx + skippy) > l {
  7885  				return io.ErrUnexpectedEOF
  7886  			}
  7887  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  7888  			iNdEx += skippy
  7889  		}
  7890  	}
  7891  
  7892  	if iNdEx > l {
  7893  		return io.ErrUnexpectedEOF
  7894  	}
  7895  	return nil
  7896  }
  7897  func (m *TypeInformation) UnmarshalVT(dAtA []byte) error {
  7898  	l := len(dAtA)
  7899  	iNdEx := 0
  7900  	for iNdEx < l {
  7901  		preIndex := iNdEx
  7902  		var wire uint64
  7903  		for shift := uint(0); ; shift += 7 {
  7904  			if shift >= 64 {
  7905  				return protohelpers.ErrIntOverflow
  7906  			}
  7907  			if iNdEx >= l {
  7908  				return io.ErrUnexpectedEOF
  7909  			}
  7910  			b := dAtA[iNdEx]
  7911  			iNdEx++
  7912  			wire |= uint64(b&0x7F) << shift
  7913  			if b < 0x80 {
  7914  				break
  7915  			}
  7916  		}
  7917  		fieldNum := int32(wire >> 3)
  7918  		wireType := int(wire & 0x7)
  7919  		if wireType == 4 {
  7920  			return fmt.Errorf("proto: TypeInformation: wiretype end group for non-group")
  7921  		}
  7922  		if fieldNum <= 0 {
  7923  			return fmt.Errorf("proto: TypeInformation: illegal tag %d (wire type %d)", fieldNum, wire)
  7924  		}
  7925  		switch fieldNum {
  7926  		case 1:
  7927  			if wireType != 2 {
  7928  				return fmt.Errorf("proto: wrong wireType = %d for field AllowedDirectRelations", wireType)
  7929  			}
  7930  			var msglen int
  7931  			for shift := uint(0); ; shift += 7 {
  7932  				if shift >= 64 {
  7933  					return protohelpers.ErrIntOverflow
  7934  				}
  7935  				if iNdEx >= l {
  7936  					return io.ErrUnexpectedEOF
  7937  				}
  7938  				b := dAtA[iNdEx]
  7939  				iNdEx++
  7940  				msglen |= int(b&0x7F) << shift
  7941  				if b < 0x80 {
  7942  					break
  7943  				}
  7944  			}
  7945  			if msglen < 0 {
  7946  				return protohelpers.ErrInvalidLength
  7947  			}
  7948  			postIndex := iNdEx + msglen
  7949  			if postIndex < 0 {
  7950  				return protohelpers.ErrInvalidLength
  7951  			}
  7952  			if postIndex > l {
  7953  				return io.ErrUnexpectedEOF
  7954  			}
  7955  			m.AllowedDirectRelations = append(m.AllowedDirectRelations, &AllowedRelation{})
  7956  			if err := m.AllowedDirectRelations[len(m.AllowedDirectRelations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  7957  				return err
  7958  			}
  7959  			iNdEx = postIndex
  7960  		default:
  7961  			iNdEx = preIndex
  7962  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  7963  			if err != nil {
  7964  				return err
  7965  			}
  7966  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  7967  				return protohelpers.ErrInvalidLength
  7968  			}
  7969  			if (iNdEx + skippy) > l {
  7970  				return io.ErrUnexpectedEOF
  7971  			}
  7972  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  7973  			iNdEx += skippy
  7974  		}
  7975  	}
  7976  
  7977  	if iNdEx > l {
  7978  		return io.ErrUnexpectedEOF
  7979  	}
  7980  	return nil
  7981  }
  7982  func (m *AllowedRelation_PublicWildcard) UnmarshalVT(dAtA []byte) error {
  7983  	l := len(dAtA)
  7984  	iNdEx := 0
  7985  	for iNdEx < l {
  7986  		preIndex := iNdEx
  7987  		var wire uint64
  7988  		for shift := uint(0); ; shift += 7 {
  7989  			if shift >= 64 {
  7990  				return protohelpers.ErrIntOverflow
  7991  			}
  7992  			if iNdEx >= l {
  7993  				return io.ErrUnexpectedEOF
  7994  			}
  7995  			b := dAtA[iNdEx]
  7996  			iNdEx++
  7997  			wire |= uint64(b&0x7F) << shift
  7998  			if b < 0x80 {
  7999  				break
  8000  			}
  8001  		}
  8002  		fieldNum := int32(wire >> 3)
  8003  		wireType := int(wire & 0x7)
  8004  		if wireType == 4 {
  8005  			return fmt.Errorf("proto: AllowedRelation_PublicWildcard: wiretype end group for non-group")
  8006  		}
  8007  		if fieldNum <= 0 {
  8008  			return fmt.Errorf("proto: AllowedRelation_PublicWildcard: illegal tag %d (wire type %d)", fieldNum, wire)
  8009  		}
  8010  		switch fieldNum {
  8011  		default:
  8012  			iNdEx = preIndex
  8013  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  8014  			if err != nil {
  8015  				return err
  8016  			}
  8017  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  8018  				return protohelpers.ErrInvalidLength
  8019  			}
  8020  			if (iNdEx + skippy) > l {
  8021  				return io.ErrUnexpectedEOF
  8022  			}
  8023  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  8024  			iNdEx += skippy
  8025  		}
  8026  	}
  8027  
  8028  	if iNdEx > l {
  8029  		return io.ErrUnexpectedEOF
  8030  	}
  8031  	return nil
  8032  }
  8033  func (m *AllowedRelation) UnmarshalVT(dAtA []byte) error {
  8034  	l := len(dAtA)
  8035  	iNdEx := 0
  8036  	for iNdEx < l {
  8037  		preIndex := iNdEx
  8038  		var wire uint64
  8039  		for shift := uint(0); ; shift += 7 {
  8040  			if shift >= 64 {
  8041  				return protohelpers.ErrIntOverflow
  8042  			}
  8043  			if iNdEx >= l {
  8044  				return io.ErrUnexpectedEOF
  8045  			}
  8046  			b := dAtA[iNdEx]
  8047  			iNdEx++
  8048  			wire |= uint64(b&0x7F) << shift
  8049  			if b < 0x80 {
  8050  				break
  8051  			}
  8052  		}
  8053  		fieldNum := int32(wire >> 3)
  8054  		wireType := int(wire & 0x7)
  8055  		if wireType == 4 {
  8056  			return fmt.Errorf("proto: AllowedRelation: wiretype end group for non-group")
  8057  		}
  8058  		if fieldNum <= 0 {
  8059  			return fmt.Errorf("proto: AllowedRelation: illegal tag %d (wire type %d)", fieldNum, wire)
  8060  		}
  8061  		switch fieldNum {
  8062  		case 1:
  8063  			if wireType != 2 {
  8064  				return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType)
  8065  			}
  8066  			var stringLen uint64
  8067  			for shift := uint(0); ; shift += 7 {
  8068  				if shift >= 64 {
  8069  					return protohelpers.ErrIntOverflow
  8070  				}
  8071  				if iNdEx >= l {
  8072  					return io.ErrUnexpectedEOF
  8073  				}
  8074  				b := dAtA[iNdEx]
  8075  				iNdEx++
  8076  				stringLen |= uint64(b&0x7F) << shift
  8077  				if b < 0x80 {
  8078  					break
  8079  				}
  8080  			}
  8081  			intStringLen := int(stringLen)
  8082  			if intStringLen < 0 {
  8083  				return protohelpers.ErrInvalidLength
  8084  			}
  8085  			postIndex := iNdEx + intStringLen
  8086  			if postIndex < 0 {
  8087  				return protohelpers.ErrInvalidLength
  8088  			}
  8089  			if postIndex > l {
  8090  				return io.ErrUnexpectedEOF
  8091  			}
  8092  			m.Namespace = string(dAtA[iNdEx:postIndex])
  8093  			iNdEx = postIndex
  8094  		case 3:
  8095  			if wireType != 2 {
  8096  				return fmt.Errorf("proto: wrong wireType = %d for field Relation", wireType)
  8097  			}
  8098  			var stringLen uint64
  8099  			for shift := uint(0); ; shift += 7 {
  8100  				if shift >= 64 {
  8101  					return protohelpers.ErrIntOverflow
  8102  				}
  8103  				if iNdEx >= l {
  8104  					return io.ErrUnexpectedEOF
  8105  				}
  8106  				b := dAtA[iNdEx]
  8107  				iNdEx++
  8108  				stringLen |= uint64(b&0x7F) << shift
  8109  				if b < 0x80 {
  8110  					break
  8111  				}
  8112  			}
  8113  			intStringLen := int(stringLen)
  8114  			if intStringLen < 0 {
  8115  				return protohelpers.ErrInvalidLength
  8116  			}
  8117  			postIndex := iNdEx + intStringLen
  8118  			if postIndex < 0 {
  8119  				return protohelpers.ErrInvalidLength
  8120  			}
  8121  			if postIndex > l {
  8122  				return io.ErrUnexpectedEOF
  8123  			}
  8124  			m.RelationOrWildcard = &AllowedRelation_Relation{Relation: string(dAtA[iNdEx:postIndex])}
  8125  			iNdEx = postIndex
  8126  		case 4:
  8127  			if wireType != 2 {
  8128  				return fmt.Errorf("proto: wrong wireType = %d for field PublicWildcard", wireType)
  8129  			}
  8130  			var msglen int
  8131  			for shift := uint(0); ; shift += 7 {
  8132  				if shift >= 64 {
  8133  					return protohelpers.ErrIntOverflow
  8134  				}
  8135  				if iNdEx >= l {
  8136  					return io.ErrUnexpectedEOF
  8137  				}
  8138  				b := dAtA[iNdEx]
  8139  				iNdEx++
  8140  				msglen |= int(b&0x7F) << shift
  8141  				if b < 0x80 {
  8142  					break
  8143  				}
  8144  			}
  8145  			if msglen < 0 {
  8146  				return protohelpers.ErrInvalidLength
  8147  			}
  8148  			postIndex := iNdEx + msglen
  8149  			if postIndex < 0 {
  8150  				return protohelpers.ErrInvalidLength
  8151  			}
  8152  			if postIndex > l {
  8153  				return io.ErrUnexpectedEOF
  8154  			}
  8155  			if oneof, ok := m.RelationOrWildcard.(*AllowedRelation_PublicWildcard_); ok {
  8156  				if err := oneof.PublicWildcard.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8157  					return err
  8158  				}
  8159  			} else {
  8160  				v := &AllowedRelation_PublicWildcard{}
  8161  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8162  					return err
  8163  				}
  8164  				m.RelationOrWildcard = &AllowedRelation_PublicWildcard_{PublicWildcard: v}
  8165  			}
  8166  			iNdEx = postIndex
  8167  		case 5:
  8168  			if wireType != 2 {
  8169  				return fmt.Errorf("proto: wrong wireType = %d for field SourcePosition", wireType)
  8170  			}
  8171  			var msglen int
  8172  			for shift := uint(0); ; shift += 7 {
  8173  				if shift >= 64 {
  8174  					return protohelpers.ErrIntOverflow
  8175  				}
  8176  				if iNdEx >= l {
  8177  					return io.ErrUnexpectedEOF
  8178  				}
  8179  				b := dAtA[iNdEx]
  8180  				iNdEx++
  8181  				msglen |= int(b&0x7F) << shift
  8182  				if b < 0x80 {
  8183  					break
  8184  				}
  8185  			}
  8186  			if msglen < 0 {
  8187  				return protohelpers.ErrInvalidLength
  8188  			}
  8189  			postIndex := iNdEx + msglen
  8190  			if postIndex < 0 {
  8191  				return protohelpers.ErrInvalidLength
  8192  			}
  8193  			if postIndex > l {
  8194  				return io.ErrUnexpectedEOF
  8195  			}
  8196  			if m.SourcePosition == nil {
  8197  				m.SourcePosition = &SourcePosition{}
  8198  			}
  8199  			if err := m.SourcePosition.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8200  				return err
  8201  			}
  8202  			iNdEx = postIndex
  8203  		case 6:
  8204  			if wireType != 2 {
  8205  				return fmt.Errorf("proto: wrong wireType = %d for field RequiredCaveat", wireType)
  8206  			}
  8207  			var msglen int
  8208  			for shift := uint(0); ; shift += 7 {
  8209  				if shift >= 64 {
  8210  					return protohelpers.ErrIntOverflow
  8211  				}
  8212  				if iNdEx >= l {
  8213  					return io.ErrUnexpectedEOF
  8214  				}
  8215  				b := dAtA[iNdEx]
  8216  				iNdEx++
  8217  				msglen |= int(b&0x7F) << shift
  8218  				if b < 0x80 {
  8219  					break
  8220  				}
  8221  			}
  8222  			if msglen < 0 {
  8223  				return protohelpers.ErrInvalidLength
  8224  			}
  8225  			postIndex := iNdEx + msglen
  8226  			if postIndex < 0 {
  8227  				return protohelpers.ErrInvalidLength
  8228  			}
  8229  			if postIndex > l {
  8230  				return io.ErrUnexpectedEOF
  8231  			}
  8232  			if m.RequiredCaveat == nil {
  8233  				m.RequiredCaveat = &AllowedCaveat{}
  8234  			}
  8235  			if err := m.RequiredCaveat.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8236  				return err
  8237  			}
  8238  			iNdEx = postIndex
  8239  		default:
  8240  			iNdEx = preIndex
  8241  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  8242  			if err != nil {
  8243  				return err
  8244  			}
  8245  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  8246  				return protohelpers.ErrInvalidLength
  8247  			}
  8248  			if (iNdEx + skippy) > l {
  8249  				return io.ErrUnexpectedEOF
  8250  			}
  8251  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  8252  			iNdEx += skippy
  8253  		}
  8254  	}
  8255  
  8256  	if iNdEx > l {
  8257  		return io.ErrUnexpectedEOF
  8258  	}
  8259  	return nil
  8260  }
  8261  func (m *AllowedCaveat) UnmarshalVT(dAtA []byte) error {
  8262  	l := len(dAtA)
  8263  	iNdEx := 0
  8264  	for iNdEx < l {
  8265  		preIndex := iNdEx
  8266  		var wire uint64
  8267  		for shift := uint(0); ; shift += 7 {
  8268  			if shift >= 64 {
  8269  				return protohelpers.ErrIntOverflow
  8270  			}
  8271  			if iNdEx >= l {
  8272  				return io.ErrUnexpectedEOF
  8273  			}
  8274  			b := dAtA[iNdEx]
  8275  			iNdEx++
  8276  			wire |= uint64(b&0x7F) << shift
  8277  			if b < 0x80 {
  8278  				break
  8279  			}
  8280  		}
  8281  		fieldNum := int32(wire >> 3)
  8282  		wireType := int(wire & 0x7)
  8283  		if wireType == 4 {
  8284  			return fmt.Errorf("proto: AllowedCaveat: wiretype end group for non-group")
  8285  		}
  8286  		if fieldNum <= 0 {
  8287  			return fmt.Errorf("proto: AllowedCaveat: illegal tag %d (wire type %d)", fieldNum, wire)
  8288  		}
  8289  		switch fieldNum {
  8290  		case 1:
  8291  			if wireType != 2 {
  8292  				return fmt.Errorf("proto: wrong wireType = %d for field CaveatName", wireType)
  8293  			}
  8294  			var stringLen uint64
  8295  			for shift := uint(0); ; shift += 7 {
  8296  				if shift >= 64 {
  8297  					return protohelpers.ErrIntOverflow
  8298  				}
  8299  				if iNdEx >= l {
  8300  					return io.ErrUnexpectedEOF
  8301  				}
  8302  				b := dAtA[iNdEx]
  8303  				iNdEx++
  8304  				stringLen |= uint64(b&0x7F) << shift
  8305  				if b < 0x80 {
  8306  					break
  8307  				}
  8308  			}
  8309  			intStringLen := int(stringLen)
  8310  			if intStringLen < 0 {
  8311  				return protohelpers.ErrInvalidLength
  8312  			}
  8313  			postIndex := iNdEx + intStringLen
  8314  			if postIndex < 0 {
  8315  				return protohelpers.ErrInvalidLength
  8316  			}
  8317  			if postIndex > l {
  8318  				return io.ErrUnexpectedEOF
  8319  			}
  8320  			m.CaveatName = string(dAtA[iNdEx:postIndex])
  8321  			iNdEx = postIndex
  8322  		default:
  8323  			iNdEx = preIndex
  8324  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  8325  			if err != nil {
  8326  				return err
  8327  			}
  8328  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  8329  				return protohelpers.ErrInvalidLength
  8330  			}
  8331  			if (iNdEx + skippy) > l {
  8332  				return io.ErrUnexpectedEOF
  8333  			}
  8334  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  8335  			iNdEx += skippy
  8336  		}
  8337  	}
  8338  
  8339  	if iNdEx > l {
  8340  		return io.ErrUnexpectedEOF
  8341  	}
  8342  	return nil
  8343  }
  8344  func (m *UsersetRewrite) UnmarshalVT(dAtA []byte) error {
  8345  	l := len(dAtA)
  8346  	iNdEx := 0
  8347  	for iNdEx < l {
  8348  		preIndex := iNdEx
  8349  		var wire uint64
  8350  		for shift := uint(0); ; shift += 7 {
  8351  			if shift >= 64 {
  8352  				return protohelpers.ErrIntOverflow
  8353  			}
  8354  			if iNdEx >= l {
  8355  				return io.ErrUnexpectedEOF
  8356  			}
  8357  			b := dAtA[iNdEx]
  8358  			iNdEx++
  8359  			wire |= uint64(b&0x7F) << shift
  8360  			if b < 0x80 {
  8361  				break
  8362  			}
  8363  		}
  8364  		fieldNum := int32(wire >> 3)
  8365  		wireType := int(wire & 0x7)
  8366  		if wireType == 4 {
  8367  			return fmt.Errorf("proto: UsersetRewrite: wiretype end group for non-group")
  8368  		}
  8369  		if fieldNum <= 0 {
  8370  			return fmt.Errorf("proto: UsersetRewrite: illegal tag %d (wire type %d)", fieldNum, wire)
  8371  		}
  8372  		switch fieldNum {
  8373  		case 1:
  8374  			if wireType != 2 {
  8375  				return fmt.Errorf("proto: wrong wireType = %d for field Union", wireType)
  8376  			}
  8377  			var msglen int
  8378  			for shift := uint(0); ; shift += 7 {
  8379  				if shift >= 64 {
  8380  					return protohelpers.ErrIntOverflow
  8381  				}
  8382  				if iNdEx >= l {
  8383  					return io.ErrUnexpectedEOF
  8384  				}
  8385  				b := dAtA[iNdEx]
  8386  				iNdEx++
  8387  				msglen |= int(b&0x7F) << shift
  8388  				if b < 0x80 {
  8389  					break
  8390  				}
  8391  			}
  8392  			if msglen < 0 {
  8393  				return protohelpers.ErrInvalidLength
  8394  			}
  8395  			postIndex := iNdEx + msglen
  8396  			if postIndex < 0 {
  8397  				return protohelpers.ErrInvalidLength
  8398  			}
  8399  			if postIndex > l {
  8400  				return io.ErrUnexpectedEOF
  8401  			}
  8402  			if oneof, ok := m.RewriteOperation.(*UsersetRewrite_Union); ok {
  8403  				if err := oneof.Union.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8404  					return err
  8405  				}
  8406  			} else {
  8407  				v := &SetOperation{}
  8408  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8409  					return err
  8410  				}
  8411  				m.RewriteOperation = &UsersetRewrite_Union{Union: v}
  8412  			}
  8413  			iNdEx = postIndex
  8414  		case 2:
  8415  			if wireType != 2 {
  8416  				return fmt.Errorf("proto: wrong wireType = %d for field Intersection", wireType)
  8417  			}
  8418  			var msglen int
  8419  			for shift := uint(0); ; shift += 7 {
  8420  				if shift >= 64 {
  8421  					return protohelpers.ErrIntOverflow
  8422  				}
  8423  				if iNdEx >= l {
  8424  					return io.ErrUnexpectedEOF
  8425  				}
  8426  				b := dAtA[iNdEx]
  8427  				iNdEx++
  8428  				msglen |= int(b&0x7F) << shift
  8429  				if b < 0x80 {
  8430  					break
  8431  				}
  8432  			}
  8433  			if msglen < 0 {
  8434  				return protohelpers.ErrInvalidLength
  8435  			}
  8436  			postIndex := iNdEx + msglen
  8437  			if postIndex < 0 {
  8438  				return protohelpers.ErrInvalidLength
  8439  			}
  8440  			if postIndex > l {
  8441  				return io.ErrUnexpectedEOF
  8442  			}
  8443  			if oneof, ok := m.RewriteOperation.(*UsersetRewrite_Intersection); ok {
  8444  				if err := oneof.Intersection.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8445  					return err
  8446  				}
  8447  			} else {
  8448  				v := &SetOperation{}
  8449  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8450  					return err
  8451  				}
  8452  				m.RewriteOperation = &UsersetRewrite_Intersection{Intersection: v}
  8453  			}
  8454  			iNdEx = postIndex
  8455  		case 3:
  8456  			if wireType != 2 {
  8457  				return fmt.Errorf("proto: wrong wireType = %d for field Exclusion", wireType)
  8458  			}
  8459  			var msglen int
  8460  			for shift := uint(0); ; shift += 7 {
  8461  				if shift >= 64 {
  8462  					return protohelpers.ErrIntOverflow
  8463  				}
  8464  				if iNdEx >= l {
  8465  					return io.ErrUnexpectedEOF
  8466  				}
  8467  				b := dAtA[iNdEx]
  8468  				iNdEx++
  8469  				msglen |= int(b&0x7F) << shift
  8470  				if b < 0x80 {
  8471  					break
  8472  				}
  8473  			}
  8474  			if msglen < 0 {
  8475  				return protohelpers.ErrInvalidLength
  8476  			}
  8477  			postIndex := iNdEx + msglen
  8478  			if postIndex < 0 {
  8479  				return protohelpers.ErrInvalidLength
  8480  			}
  8481  			if postIndex > l {
  8482  				return io.ErrUnexpectedEOF
  8483  			}
  8484  			if oneof, ok := m.RewriteOperation.(*UsersetRewrite_Exclusion); ok {
  8485  				if err := oneof.Exclusion.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8486  					return err
  8487  				}
  8488  			} else {
  8489  				v := &SetOperation{}
  8490  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8491  					return err
  8492  				}
  8493  				m.RewriteOperation = &UsersetRewrite_Exclusion{Exclusion: v}
  8494  			}
  8495  			iNdEx = postIndex
  8496  		case 4:
  8497  			if wireType != 2 {
  8498  				return fmt.Errorf("proto: wrong wireType = %d for field SourcePosition", wireType)
  8499  			}
  8500  			var msglen int
  8501  			for shift := uint(0); ; shift += 7 {
  8502  				if shift >= 64 {
  8503  					return protohelpers.ErrIntOverflow
  8504  				}
  8505  				if iNdEx >= l {
  8506  					return io.ErrUnexpectedEOF
  8507  				}
  8508  				b := dAtA[iNdEx]
  8509  				iNdEx++
  8510  				msglen |= int(b&0x7F) << shift
  8511  				if b < 0x80 {
  8512  					break
  8513  				}
  8514  			}
  8515  			if msglen < 0 {
  8516  				return protohelpers.ErrInvalidLength
  8517  			}
  8518  			postIndex := iNdEx + msglen
  8519  			if postIndex < 0 {
  8520  				return protohelpers.ErrInvalidLength
  8521  			}
  8522  			if postIndex > l {
  8523  				return io.ErrUnexpectedEOF
  8524  			}
  8525  			if m.SourcePosition == nil {
  8526  				m.SourcePosition = &SourcePosition{}
  8527  			}
  8528  			if err := m.SourcePosition.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8529  				return err
  8530  			}
  8531  			iNdEx = postIndex
  8532  		default:
  8533  			iNdEx = preIndex
  8534  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  8535  			if err != nil {
  8536  				return err
  8537  			}
  8538  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  8539  				return protohelpers.ErrInvalidLength
  8540  			}
  8541  			if (iNdEx + skippy) > l {
  8542  				return io.ErrUnexpectedEOF
  8543  			}
  8544  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  8545  			iNdEx += skippy
  8546  		}
  8547  	}
  8548  
  8549  	if iNdEx > l {
  8550  		return io.ErrUnexpectedEOF
  8551  	}
  8552  	return nil
  8553  }
  8554  func (m *SetOperation_Child_This) UnmarshalVT(dAtA []byte) error {
  8555  	l := len(dAtA)
  8556  	iNdEx := 0
  8557  	for iNdEx < l {
  8558  		preIndex := iNdEx
  8559  		var wire uint64
  8560  		for shift := uint(0); ; shift += 7 {
  8561  			if shift >= 64 {
  8562  				return protohelpers.ErrIntOverflow
  8563  			}
  8564  			if iNdEx >= l {
  8565  				return io.ErrUnexpectedEOF
  8566  			}
  8567  			b := dAtA[iNdEx]
  8568  			iNdEx++
  8569  			wire |= uint64(b&0x7F) << shift
  8570  			if b < 0x80 {
  8571  				break
  8572  			}
  8573  		}
  8574  		fieldNum := int32(wire >> 3)
  8575  		wireType := int(wire & 0x7)
  8576  		if wireType == 4 {
  8577  			return fmt.Errorf("proto: SetOperation_Child_This: wiretype end group for non-group")
  8578  		}
  8579  		if fieldNum <= 0 {
  8580  			return fmt.Errorf("proto: SetOperation_Child_This: illegal tag %d (wire type %d)", fieldNum, wire)
  8581  		}
  8582  		switch fieldNum {
  8583  		default:
  8584  			iNdEx = preIndex
  8585  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  8586  			if err != nil {
  8587  				return err
  8588  			}
  8589  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  8590  				return protohelpers.ErrInvalidLength
  8591  			}
  8592  			if (iNdEx + skippy) > l {
  8593  				return io.ErrUnexpectedEOF
  8594  			}
  8595  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  8596  			iNdEx += skippy
  8597  		}
  8598  	}
  8599  
  8600  	if iNdEx > l {
  8601  		return io.ErrUnexpectedEOF
  8602  	}
  8603  	return nil
  8604  }
  8605  func (m *SetOperation_Child_Nil) UnmarshalVT(dAtA []byte) error {
  8606  	l := len(dAtA)
  8607  	iNdEx := 0
  8608  	for iNdEx < l {
  8609  		preIndex := iNdEx
  8610  		var wire uint64
  8611  		for shift := uint(0); ; shift += 7 {
  8612  			if shift >= 64 {
  8613  				return protohelpers.ErrIntOverflow
  8614  			}
  8615  			if iNdEx >= l {
  8616  				return io.ErrUnexpectedEOF
  8617  			}
  8618  			b := dAtA[iNdEx]
  8619  			iNdEx++
  8620  			wire |= uint64(b&0x7F) << shift
  8621  			if b < 0x80 {
  8622  				break
  8623  			}
  8624  		}
  8625  		fieldNum := int32(wire >> 3)
  8626  		wireType := int(wire & 0x7)
  8627  		if wireType == 4 {
  8628  			return fmt.Errorf("proto: SetOperation_Child_Nil: wiretype end group for non-group")
  8629  		}
  8630  		if fieldNum <= 0 {
  8631  			return fmt.Errorf("proto: SetOperation_Child_Nil: illegal tag %d (wire type %d)", fieldNum, wire)
  8632  		}
  8633  		switch fieldNum {
  8634  		default:
  8635  			iNdEx = preIndex
  8636  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  8637  			if err != nil {
  8638  				return err
  8639  			}
  8640  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  8641  				return protohelpers.ErrInvalidLength
  8642  			}
  8643  			if (iNdEx + skippy) > l {
  8644  				return io.ErrUnexpectedEOF
  8645  			}
  8646  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  8647  			iNdEx += skippy
  8648  		}
  8649  	}
  8650  
  8651  	if iNdEx > l {
  8652  		return io.ErrUnexpectedEOF
  8653  	}
  8654  	return nil
  8655  }
  8656  func (m *SetOperation_Child) UnmarshalVT(dAtA []byte) error {
  8657  	l := len(dAtA)
  8658  	iNdEx := 0
  8659  	for iNdEx < l {
  8660  		preIndex := iNdEx
  8661  		var wire uint64
  8662  		for shift := uint(0); ; shift += 7 {
  8663  			if shift >= 64 {
  8664  				return protohelpers.ErrIntOverflow
  8665  			}
  8666  			if iNdEx >= l {
  8667  				return io.ErrUnexpectedEOF
  8668  			}
  8669  			b := dAtA[iNdEx]
  8670  			iNdEx++
  8671  			wire |= uint64(b&0x7F) << shift
  8672  			if b < 0x80 {
  8673  				break
  8674  			}
  8675  		}
  8676  		fieldNum := int32(wire >> 3)
  8677  		wireType := int(wire & 0x7)
  8678  		if wireType == 4 {
  8679  			return fmt.Errorf("proto: SetOperation_Child: wiretype end group for non-group")
  8680  		}
  8681  		if fieldNum <= 0 {
  8682  			return fmt.Errorf("proto: SetOperation_Child: illegal tag %d (wire type %d)", fieldNum, wire)
  8683  		}
  8684  		switch fieldNum {
  8685  		case 1:
  8686  			if wireType != 2 {
  8687  				return fmt.Errorf("proto: wrong wireType = %d for field XThis", wireType)
  8688  			}
  8689  			var msglen int
  8690  			for shift := uint(0); ; shift += 7 {
  8691  				if shift >= 64 {
  8692  					return protohelpers.ErrIntOverflow
  8693  				}
  8694  				if iNdEx >= l {
  8695  					return io.ErrUnexpectedEOF
  8696  				}
  8697  				b := dAtA[iNdEx]
  8698  				iNdEx++
  8699  				msglen |= int(b&0x7F) << shift
  8700  				if b < 0x80 {
  8701  					break
  8702  				}
  8703  			}
  8704  			if msglen < 0 {
  8705  				return protohelpers.ErrInvalidLength
  8706  			}
  8707  			postIndex := iNdEx + msglen
  8708  			if postIndex < 0 {
  8709  				return protohelpers.ErrInvalidLength
  8710  			}
  8711  			if postIndex > l {
  8712  				return io.ErrUnexpectedEOF
  8713  			}
  8714  			if oneof, ok := m.ChildType.(*SetOperation_Child_XThis); ok {
  8715  				if err := oneof.XThis.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8716  					return err
  8717  				}
  8718  			} else {
  8719  				v := &SetOperation_Child_This{}
  8720  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8721  					return err
  8722  				}
  8723  				m.ChildType = &SetOperation_Child_XThis{XThis: v}
  8724  			}
  8725  			iNdEx = postIndex
  8726  		case 2:
  8727  			if wireType != 2 {
  8728  				return fmt.Errorf("proto: wrong wireType = %d for field ComputedUserset", wireType)
  8729  			}
  8730  			var msglen int
  8731  			for shift := uint(0); ; shift += 7 {
  8732  				if shift >= 64 {
  8733  					return protohelpers.ErrIntOverflow
  8734  				}
  8735  				if iNdEx >= l {
  8736  					return io.ErrUnexpectedEOF
  8737  				}
  8738  				b := dAtA[iNdEx]
  8739  				iNdEx++
  8740  				msglen |= int(b&0x7F) << shift
  8741  				if b < 0x80 {
  8742  					break
  8743  				}
  8744  			}
  8745  			if msglen < 0 {
  8746  				return protohelpers.ErrInvalidLength
  8747  			}
  8748  			postIndex := iNdEx + msglen
  8749  			if postIndex < 0 {
  8750  				return protohelpers.ErrInvalidLength
  8751  			}
  8752  			if postIndex > l {
  8753  				return io.ErrUnexpectedEOF
  8754  			}
  8755  			if oneof, ok := m.ChildType.(*SetOperation_Child_ComputedUserset); ok {
  8756  				if err := oneof.ComputedUserset.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8757  					return err
  8758  				}
  8759  			} else {
  8760  				v := &ComputedUserset{}
  8761  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8762  					return err
  8763  				}
  8764  				m.ChildType = &SetOperation_Child_ComputedUserset{ComputedUserset: v}
  8765  			}
  8766  			iNdEx = postIndex
  8767  		case 3:
  8768  			if wireType != 2 {
  8769  				return fmt.Errorf("proto: wrong wireType = %d for field TupleToUserset", wireType)
  8770  			}
  8771  			var msglen int
  8772  			for shift := uint(0); ; shift += 7 {
  8773  				if shift >= 64 {
  8774  					return protohelpers.ErrIntOverflow
  8775  				}
  8776  				if iNdEx >= l {
  8777  					return io.ErrUnexpectedEOF
  8778  				}
  8779  				b := dAtA[iNdEx]
  8780  				iNdEx++
  8781  				msglen |= int(b&0x7F) << shift
  8782  				if b < 0x80 {
  8783  					break
  8784  				}
  8785  			}
  8786  			if msglen < 0 {
  8787  				return protohelpers.ErrInvalidLength
  8788  			}
  8789  			postIndex := iNdEx + msglen
  8790  			if postIndex < 0 {
  8791  				return protohelpers.ErrInvalidLength
  8792  			}
  8793  			if postIndex > l {
  8794  				return io.ErrUnexpectedEOF
  8795  			}
  8796  			if oneof, ok := m.ChildType.(*SetOperation_Child_TupleToUserset); ok {
  8797  				if err := oneof.TupleToUserset.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8798  					return err
  8799  				}
  8800  			} else {
  8801  				v := &TupleToUserset{}
  8802  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8803  					return err
  8804  				}
  8805  				m.ChildType = &SetOperation_Child_TupleToUserset{TupleToUserset: v}
  8806  			}
  8807  			iNdEx = postIndex
  8808  		case 4:
  8809  			if wireType != 2 {
  8810  				return fmt.Errorf("proto: wrong wireType = %d for field UsersetRewrite", wireType)
  8811  			}
  8812  			var msglen int
  8813  			for shift := uint(0); ; shift += 7 {
  8814  				if shift >= 64 {
  8815  					return protohelpers.ErrIntOverflow
  8816  				}
  8817  				if iNdEx >= l {
  8818  					return io.ErrUnexpectedEOF
  8819  				}
  8820  				b := dAtA[iNdEx]
  8821  				iNdEx++
  8822  				msglen |= int(b&0x7F) << shift
  8823  				if b < 0x80 {
  8824  					break
  8825  				}
  8826  			}
  8827  			if msglen < 0 {
  8828  				return protohelpers.ErrInvalidLength
  8829  			}
  8830  			postIndex := iNdEx + msglen
  8831  			if postIndex < 0 {
  8832  				return protohelpers.ErrInvalidLength
  8833  			}
  8834  			if postIndex > l {
  8835  				return io.ErrUnexpectedEOF
  8836  			}
  8837  			if oneof, ok := m.ChildType.(*SetOperation_Child_UsersetRewrite); ok {
  8838  				if err := oneof.UsersetRewrite.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8839  					return err
  8840  				}
  8841  			} else {
  8842  				v := &UsersetRewrite{}
  8843  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8844  					return err
  8845  				}
  8846  				m.ChildType = &SetOperation_Child_UsersetRewrite{UsersetRewrite: v}
  8847  			}
  8848  			iNdEx = postIndex
  8849  		case 5:
  8850  			if wireType != 2 {
  8851  				return fmt.Errorf("proto: wrong wireType = %d for field SourcePosition", wireType)
  8852  			}
  8853  			var msglen int
  8854  			for shift := uint(0); ; shift += 7 {
  8855  				if shift >= 64 {
  8856  					return protohelpers.ErrIntOverflow
  8857  				}
  8858  				if iNdEx >= l {
  8859  					return io.ErrUnexpectedEOF
  8860  				}
  8861  				b := dAtA[iNdEx]
  8862  				iNdEx++
  8863  				msglen |= int(b&0x7F) << shift
  8864  				if b < 0x80 {
  8865  					break
  8866  				}
  8867  			}
  8868  			if msglen < 0 {
  8869  				return protohelpers.ErrInvalidLength
  8870  			}
  8871  			postIndex := iNdEx + msglen
  8872  			if postIndex < 0 {
  8873  				return protohelpers.ErrInvalidLength
  8874  			}
  8875  			if postIndex > l {
  8876  				return io.ErrUnexpectedEOF
  8877  			}
  8878  			if m.SourcePosition == nil {
  8879  				m.SourcePosition = &SourcePosition{}
  8880  			}
  8881  			if err := m.SourcePosition.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8882  				return err
  8883  			}
  8884  			iNdEx = postIndex
  8885  		case 6:
  8886  			if wireType != 2 {
  8887  				return fmt.Errorf("proto: wrong wireType = %d for field XNil", wireType)
  8888  			}
  8889  			var msglen int
  8890  			for shift := uint(0); ; shift += 7 {
  8891  				if shift >= 64 {
  8892  					return protohelpers.ErrIntOverflow
  8893  				}
  8894  				if iNdEx >= l {
  8895  					return io.ErrUnexpectedEOF
  8896  				}
  8897  				b := dAtA[iNdEx]
  8898  				iNdEx++
  8899  				msglen |= int(b&0x7F) << shift
  8900  				if b < 0x80 {
  8901  					break
  8902  				}
  8903  			}
  8904  			if msglen < 0 {
  8905  				return protohelpers.ErrInvalidLength
  8906  			}
  8907  			postIndex := iNdEx + msglen
  8908  			if postIndex < 0 {
  8909  				return protohelpers.ErrInvalidLength
  8910  			}
  8911  			if postIndex > l {
  8912  				return io.ErrUnexpectedEOF
  8913  			}
  8914  			if oneof, ok := m.ChildType.(*SetOperation_Child_XNil); ok {
  8915  				if err := oneof.XNil.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8916  					return err
  8917  				}
  8918  			} else {
  8919  				v := &SetOperation_Child_Nil{}
  8920  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  8921  					return err
  8922  				}
  8923  				m.ChildType = &SetOperation_Child_XNil{XNil: v}
  8924  			}
  8925  			iNdEx = postIndex
  8926  		case 7:
  8927  			if wireType == 0 {
  8928  				var v uint32
  8929  				for shift := uint(0); ; shift += 7 {
  8930  					if shift >= 64 {
  8931  						return protohelpers.ErrIntOverflow
  8932  					}
  8933  					if iNdEx >= l {
  8934  						return io.ErrUnexpectedEOF
  8935  					}
  8936  					b := dAtA[iNdEx]
  8937  					iNdEx++
  8938  					v |= uint32(b&0x7F) << shift
  8939  					if b < 0x80 {
  8940  						break
  8941  					}
  8942  				}
  8943  				m.OperationPath = append(m.OperationPath, v)
  8944  			} else if wireType == 2 {
  8945  				var packedLen int
  8946  				for shift := uint(0); ; shift += 7 {
  8947  					if shift >= 64 {
  8948  						return protohelpers.ErrIntOverflow
  8949  					}
  8950  					if iNdEx >= l {
  8951  						return io.ErrUnexpectedEOF
  8952  					}
  8953  					b := dAtA[iNdEx]
  8954  					iNdEx++
  8955  					packedLen |= int(b&0x7F) << shift
  8956  					if b < 0x80 {
  8957  						break
  8958  					}
  8959  				}
  8960  				if packedLen < 0 {
  8961  					return protohelpers.ErrInvalidLength
  8962  				}
  8963  				postIndex := iNdEx + packedLen
  8964  				if postIndex < 0 {
  8965  					return protohelpers.ErrInvalidLength
  8966  				}
  8967  				if postIndex > l {
  8968  					return io.ErrUnexpectedEOF
  8969  				}
  8970  				var elementCount int
  8971  				var count int
  8972  				for _, integer := range dAtA[iNdEx:postIndex] {
  8973  					if integer < 128 {
  8974  						count++
  8975  					}
  8976  				}
  8977  				elementCount = count
  8978  				if elementCount != 0 && len(m.OperationPath) == 0 {
  8979  					m.OperationPath = make([]uint32, 0, elementCount)
  8980  				}
  8981  				for iNdEx < postIndex {
  8982  					var v uint32
  8983  					for shift := uint(0); ; shift += 7 {
  8984  						if shift >= 64 {
  8985  							return protohelpers.ErrIntOverflow
  8986  						}
  8987  						if iNdEx >= l {
  8988  							return io.ErrUnexpectedEOF
  8989  						}
  8990  						b := dAtA[iNdEx]
  8991  						iNdEx++
  8992  						v |= uint32(b&0x7F) << shift
  8993  						if b < 0x80 {
  8994  							break
  8995  						}
  8996  					}
  8997  					m.OperationPath = append(m.OperationPath, v)
  8998  				}
  8999  			} else {
  9000  				return fmt.Errorf("proto: wrong wireType = %d for field OperationPath", wireType)
  9001  			}
  9002  		default:
  9003  			iNdEx = preIndex
  9004  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  9005  			if err != nil {
  9006  				return err
  9007  			}
  9008  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  9009  				return protohelpers.ErrInvalidLength
  9010  			}
  9011  			if (iNdEx + skippy) > l {
  9012  				return io.ErrUnexpectedEOF
  9013  			}
  9014  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  9015  			iNdEx += skippy
  9016  		}
  9017  	}
  9018  
  9019  	if iNdEx > l {
  9020  		return io.ErrUnexpectedEOF
  9021  	}
  9022  	return nil
  9023  }
  9024  func (m *SetOperation) UnmarshalVT(dAtA []byte) error {
  9025  	l := len(dAtA)
  9026  	iNdEx := 0
  9027  	for iNdEx < l {
  9028  		preIndex := iNdEx
  9029  		var wire uint64
  9030  		for shift := uint(0); ; shift += 7 {
  9031  			if shift >= 64 {
  9032  				return protohelpers.ErrIntOverflow
  9033  			}
  9034  			if iNdEx >= l {
  9035  				return io.ErrUnexpectedEOF
  9036  			}
  9037  			b := dAtA[iNdEx]
  9038  			iNdEx++
  9039  			wire |= uint64(b&0x7F) << shift
  9040  			if b < 0x80 {
  9041  				break
  9042  			}
  9043  		}
  9044  		fieldNum := int32(wire >> 3)
  9045  		wireType := int(wire & 0x7)
  9046  		if wireType == 4 {
  9047  			return fmt.Errorf("proto: SetOperation: wiretype end group for non-group")
  9048  		}
  9049  		if fieldNum <= 0 {
  9050  			return fmt.Errorf("proto: SetOperation: illegal tag %d (wire type %d)", fieldNum, wire)
  9051  		}
  9052  		switch fieldNum {
  9053  		case 1:
  9054  			if wireType != 2 {
  9055  				return fmt.Errorf("proto: wrong wireType = %d for field Child", wireType)
  9056  			}
  9057  			var msglen int
  9058  			for shift := uint(0); ; shift += 7 {
  9059  				if shift >= 64 {
  9060  					return protohelpers.ErrIntOverflow
  9061  				}
  9062  				if iNdEx >= l {
  9063  					return io.ErrUnexpectedEOF
  9064  				}
  9065  				b := dAtA[iNdEx]
  9066  				iNdEx++
  9067  				msglen |= int(b&0x7F) << shift
  9068  				if b < 0x80 {
  9069  					break
  9070  				}
  9071  			}
  9072  			if msglen < 0 {
  9073  				return protohelpers.ErrInvalidLength
  9074  			}
  9075  			postIndex := iNdEx + msglen
  9076  			if postIndex < 0 {
  9077  				return protohelpers.ErrInvalidLength
  9078  			}
  9079  			if postIndex > l {
  9080  				return io.ErrUnexpectedEOF
  9081  			}
  9082  			m.Child = append(m.Child, &SetOperation_Child{})
  9083  			if err := m.Child[len(m.Child)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9084  				return err
  9085  			}
  9086  			iNdEx = postIndex
  9087  		default:
  9088  			iNdEx = preIndex
  9089  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  9090  			if err != nil {
  9091  				return err
  9092  			}
  9093  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  9094  				return protohelpers.ErrInvalidLength
  9095  			}
  9096  			if (iNdEx + skippy) > l {
  9097  				return io.ErrUnexpectedEOF
  9098  			}
  9099  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  9100  			iNdEx += skippy
  9101  		}
  9102  	}
  9103  
  9104  	if iNdEx > l {
  9105  		return io.ErrUnexpectedEOF
  9106  	}
  9107  	return nil
  9108  }
  9109  func (m *TupleToUserset_Tupleset) UnmarshalVT(dAtA []byte) error {
  9110  	l := len(dAtA)
  9111  	iNdEx := 0
  9112  	for iNdEx < l {
  9113  		preIndex := iNdEx
  9114  		var wire uint64
  9115  		for shift := uint(0); ; shift += 7 {
  9116  			if shift >= 64 {
  9117  				return protohelpers.ErrIntOverflow
  9118  			}
  9119  			if iNdEx >= l {
  9120  				return io.ErrUnexpectedEOF
  9121  			}
  9122  			b := dAtA[iNdEx]
  9123  			iNdEx++
  9124  			wire |= uint64(b&0x7F) << shift
  9125  			if b < 0x80 {
  9126  				break
  9127  			}
  9128  		}
  9129  		fieldNum := int32(wire >> 3)
  9130  		wireType := int(wire & 0x7)
  9131  		if wireType == 4 {
  9132  			return fmt.Errorf("proto: TupleToUserset_Tupleset: wiretype end group for non-group")
  9133  		}
  9134  		if fieldNum <= 0 {
  9135  			return fmt.Errorf("proto: TupleToUserset_Tupleset: illegal tag %d (wire type %d)", fieldNum, wire)
  9136  		}
  9137  		switch fieldNum {
  9138  		case 1:
  9139  			if wireType != 2 {
  9140  				return fmt.Errorf("proto: wrong wireType = %d for field Relation", wireType)
  9141  			}
  9142  			var stringLen uint64
  9143  			for shift := uint(0); ; shift += 7 {
  9144  				if shift >= 64 {
  9145  					return protohelpers.ErrIntOverflow
  9146  				}
  9147  				if iNdEx >= l {
  9148  					return io.ErrUnexpectedEOF
  9149  				}
  9150  				b := dAtA[iNdEx]
  9151  				iNdEx++
  9152  				stringLen |= uint64(b&0x7F) << shift
  9153  				if b < 0x80 {
  9154  					break
  9155  				}
  9156  			}
  9157  			intStringLen := int(stringLen)
  9158  			if intStringLen < 0 {
  9159  				return protohelpers.ErrInvalidLength
  9160  			}
  9161  			postIndex := iNdEx + intStringLen
  9162  			if postIndex < 0 {
  9163  				return protohelpers.ErrInvalidLength
  9164  			}
  9165  			if postIndex > l {
  9166  				return io.ErrUnexpectedEOF
  9167  			}
  9168  			m.Relation = string(dAtA[iNdEx:postIndex])
  9169  			iNdEx = postIndex
  9170  		default:
  9171  			iNdEx = preIndex
  9172  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  9173  			if err != nil {
  9174  				return err
  9175  			}
  9176  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  9177  				return protohelpers.ErrInvalidLength
  9178  			}
  9179  			if (iNdEx + skippy) > l {
  9180  				return io.ErrUnexpectedEOF
  9181  			}
  9182  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  9183  			iNdEx += skippy
  9184  		}
  9185  	}
  9186  
  9187  	if iNdEx > l {
  9188  		return io.ErrUnexpectedEOF
  9189  	}
  9190  	return nil
  9191  }
  9192  func (m *TupleToUserset) UnmarshalVT(dAtA []byte) error {
  9193  	l := len(dAtA)
  9194  	iNdEx := 0
  9195  	for iNdEx < l {
  9196  		preIndex := iNdEx
  9197  		var wire uint64
  9198  		for shift := uint(0); ; shift += 7 {
  9199  			if shift >= 64 {
  9200  				return protohelpers.ErrIntOverflow
  9201  			}
  9202  			if iNdEx >= l {
  9203  				return io.ErrUnexpectedEOF
  9204  			}
  9205  			b := dAtA[iNdEx]
  9206  			iNdEx++
  9207  			wire |= uint64(b&0x7F) << shift
  9208  			if b < 0x80 {
  9209  				break
  9210  			}
  9211  		}
  9212  		fieldNum := int32(wire >> 3)
  9213  		wireType := int(wire & 0x7)
  9214  		if wireType == 4 {
  9215  			return fmt.Errorf("proto: TupleToUserset: wiretype end group for non-group")
  9216  		}
  9217  		if fieldNum <= 0 {
  9218  			return fmt.Errorf("proto: TupleToUserset: illegal tag %d (wire type %d)", fieldNum, wire)
  9219  		}
  9220  		switch fieldNum {
  9221  		case 1:
  9222  			if wireType != 2 {
  9223  				return fmt.Errorf("proto: wrong wireType = %d for field Tupleset", wireType)
  9224  			}
  9225  			var msglen int
  9226  			for shift := uint(0); ; shift += 7 {
  9227  				if shift >= 64 {
  9228  					return protohelpers.ErrIntOverflow
  9229  				}
  9230  				if iNdEx >= l {
  9231  					return io.ErrUnexpectedEOF
  9232  				}
  9233  				b := dAtA[iNdEx]
  9234  				iNdEx++
  9235  				msglen |= int(b&0x7F) << shift
  9236  				if b < 0x80 {
  9237  					break
  9238  				}
  9239  			}
  9240  			if msglen < 0 {
  9241  				return protohelpers.ErrInvalidLength
  9242  			}
  9243  			postIndex := iNdEx + msglen
  9244  			if postIndex < 0 {
  9245  				return protohelpers.ErrInvalidLength
  9246  			}
  9247  			if postIndex > l {
  9248  				return io.ErrUnexpectedEOF
  9249  			}
  9250  			if m.Tupleset == nil {
  9251  				m.Tupleset = &TupleToUserset_Tupleset{}
  9252  			}
  9253  			if err := m.Tupleset.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9254  				return err
  9255  			}
  9256  			iNdEx = postIndex
  9257  		case 2:
  9258  			if wireType != 2 {
  9259  				return fmt.Errorf("proto: wrong wireType = %d for field ComputedUserset", wireType)
  9260  			}
  9261  			var msglen int
  9262  			for shift := uint(0); ; shift += 7 {
  9263  				if shift >= 64 {
  9264  					return protohelpers.ErrIntOverflow
  9265  				}
  9266  				if iNdEx >= l {
  9267  					return io.ErrUnexpectedEOF
  9268  				}
  9269  				b := dAtA[iNdEx]
  9270  				iNdEx++
  9271  				msglen |= int(b&0x7F) << shift
  9272  				if b < 0x80 {
  9273  					break
  9274  				}
  9275  			}
  9276  			if msglen < 0 {
  9277  				return protohelpers.ErrInvalidLength
  9278  			}
  9279  			postIndex := iNdEx + msglen
  9280  			if postIndex < 0 {
  9281  				return protohelpers.ErrInvalidLength
  9282  			}
  9283  			if postIndex > l {
  9284  				return io.ErrUnexpectedEOF
  9285  			}
  9286  			if m.ComputedUserset == nil {
  9287  				m.ComputedUserset = &ComputedUserset{}
  9288  			}
  9289  			if err := m.ComputedUserset.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9290  				return err
  9291  			}
  9292  			iNdEx = postIndex
  9293  		case 3:
  9294  			if wireType != 2 {
  9295  				return fmt.Errorf("proto: wrong wireType = %d for field SourcePosition", wireType)
  9296  			}
  9297  			var msglen int
  9298  			for shift := uint(0); ; shift += 7 {
  9299  				if shift >= 64 {
  9300  					return protohelpers.ErrIntOverflow
  9301  				}
  9302  				if iNdEx >= l {
  9303  					return io.ErrUnexpectedEOF
  9304  				}
  9305  				b := dAtA[iNdEx]
  9306  				iNdEx++
  9307  				msglen |= int(b&0x7F) << shift
  9308  				if b < 0x80 {
  9309  					break
  9310  				}
  9311  			}
  9312  			if msglen < 0 {
  9313  				return protohelpers.ErrInvalidLength
  9314  			}
  9315  			postIndex := iNdEx + msglen
  9316  			if postIndex < 0 {
  9317  				return protohelpers.ErrInvalidLength
  9318  			}
  9319  			if postIndex > l {
  9320  				return io.ErrUnexpectedEOF
  9321  			}
  9322  			if m.SourcePosition == nil {
  9323  				m.SourcePosition = &SourcePosition{}
  9324  			}
  9325  			if err := m.SourcePosition.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9326  				return err
  9327  			}
  9328  			iNdEx = postIndex
  9329  		default:
  9330  			iNdEx = preIndex
  9331  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  9332  			if err != nil {
  9333  				return err
  9334  			}
  9335  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  9336  				return protohelpers.ErrInvalidLength
  9337  			}
  9338  			if (iNdEx + skippy) > l {
  9339  				return io.ErrUnexpectedEOF
  9340  			}
  9341  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  9342  			iNdEx += skippy
  9343  		}
  9344  	}
  9345  
  9346  	if iNdEx > l {
  9347  		return io.ErrUnexpectedEOF
  9348  	}
  9349  	return nil
  9350  }
  9351  func (m *ComputedUserset) UnmarshalVT(dAtA []byte) error {
  9352  	l := len(dAtA)
  9353  	iNdEx := 0
  9354  	for iNdEx < l {
  9355  		preIndex := iNdEx
  9356  		var wire uint64
  9357  		for shift := uint(0); ; shift += 7 {
  9358  			if shift >= 64 {
  9359  				return protohelpers.ErrIntOverflow
  9360  			}
  9361  			if iNdEx >= l {
  9362  				return io.ErrUnexpectedEOF
  9363  			}
  9364  			b := dAtA[iNdEx]
  9365  			iNdEx++
  9366  			wire |= uint64(b&0x7F) << shift
  9367  			if b < 0x80 {
  9368  				break
  9369  			}
  9370  		}
  9371  		fieldNum := int32(wire >> 3)
  9372  		wireType := int(wire & 0x7)
  9373  		if wireType == 4 {
  9374  			return fmt.Errorf("proto: ComputedUserset: wiretype end group for non-group")
  9375  		}
  9376  		if fieldNum <= 0 {
  9377  			return fmt.Errorf("proto: ComputedUserset: illegal tag %d (wire type %d)", fieldNum, wire)
  9378  		}
  9379  		switch fieldNum {
  9380  		case 1:
  9381  			if wireType != 0 {
  9382  				return fmt.Errorf("proto: wrong wireType = %d for field Object", wireType)
  9383  			}
  9384  			m.Object = 0
  9385  			for shift := uint(0); ; shift += 7 {
  9386  				if shift >= 64 {
  9387  					return protohelpers.ErrIntOverflow
  9388  				}
  9389  				if iNdEx >= l {
  9390  					return io.ErrUnexpectedEOF
  9391  				}
  9392  				b := dAtA[iNdEx]
  9393  				iNdEx++
  9394  				m.Object |= ComputedUserset_Object(b&0x7F) << shift
  9395  				if b < 0x80 {
  9396  					break
  9397  				}
  9398  			}
  9399  		case 2:
  9400  			if wireType != 2 {
  9401  				return fmt.Errorf("proto: wrong wireType = %d for field Relation", wireType)
  9402  			}
  9403  			var stringLen uint64
  9404  			for shift := uint(0); ; shift += 7 {
  9405  				if shift >= 64 {
  9406  					return protohelpers.ErrIntOverflow
  9407  				}
  9408  				if iNdEx >= l {
  9409  					return io.ErrUnexpectedEOF
  9410  				}
  9411  				b := dAtA[iNdEx]
  9412  				iNdEx++
  9413  				stringLen |= uint64(b&0x7F) << shift
  9414  				if b < 0x80 {
  9415  					break
  9416  				}
  9417  			}
  9418  			intStringLen := int(stringLen)
  9419  			if intStringLen < 0 {
  9420  				return protohelpers.ErrInvalidLength
  9421  			}
  9422  			postIndex := iNdEx + intStringLen
  9423  			if postIndex < 0 {
  9424  				return protohelpers.ErrInvalidLength
  9425  			}
  9426  			if postIndex > l {
  9427  				return io.ErrUnexpectedEOF
  9428  			}
  9429  			m.Relation = string(dAtA[iNdEx:postIndex])
  9430  			iNdEx = postIndex
  9431  		case 3:
  9432  			if wireType != 2 {
  9433  				return fmt.Errorf("proto: wrong wireType = %d for field SourcePosition", wireType)
  9434  			}
  9435  			var msglen int
  9436  			for shift := uint(0); ; shift += 7 {
  9437  				if shift >= 64 {
  9438  					return protohelpers.ErrIntOverflow
  9439  				}
  9440  				if iNdEx >= l {
  9441  					return io.ErrUnexpectedEOF
  9442  				}
  9443  				b := dAtA[iNdEx]
  9444  				iNdEx++
  9445  				msglen |= int(b&0x7F) << shift
  9446  				if b < 0x80 {
  9447  					break
  9448  				}
  9449  			}
  9450  			if msglen < 0 {
  9451  				return protohelpers.ErrInvalidLength
  9452  			}
  9453  			postIndex := iNdEx + msglen
  9454  			if postIndex < 0 {
  9455  				return protohelpers.ErrInvalidLength
  9456  			}
  9457  			if postIndex > l {
  9458  				return io.ErrUnexpectedEOF
  9459  			}
  9460  			if m.SourcePosition == nil {
  9461  				m.SourcePosition = &SourcePosition{}
  9462  			}
  9463  			if err := m.SourcePosition.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9464  				return err
  9465  			}
  9466  			iNdEx = postIndex
  9467  		default:
  9468  			iNdEx = preIndex
  9469  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  9470  			if err != nil {
  9471  				return err
  9472  			}
  9473  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  9474  				return protohelpers.ErrInvalidLength
  9475  			}
  9476  			if (iNdEx + skippy) > l {
  9477  				return io.ErrUnexpectedEOF
  9478  			}
  9479  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  9480  			iNdEx += skippy
  9481  		}
  9482  	}
  9483  
  9484  	if iNdEx > l {
  9485  		return io.ErrUnexpectedEOF
  9486  	}
  9487  	return nil
  9488  }
  9489  func (m *SourcePosition) UnmarshalVT(dAtA []byte) error {
  9490  	l := len(dAtA)
  9491  	iNdEx := 0
  9492  	for iNdEx < l {
  9493  		preIndex := iNdEx
  9494  		var wire uint64
  9495  		for shift := uint(0); ; shift += 7 {
  9496  			if shift >= 64 {
  9497  				return protohelpers.ErrIntOverflow
  9498  			}
  9499  			if iNdEx >= l {
  9500  				return io.ErrUnexpectedEOF
  9501  			}
  9502  			b := dAtA[iNdEx]
  9503  			iNdEx++
  9504  			wire |= uint64(b&0x7F) << shift
  9505  			if b < 0x80 {
  9506  				break
  9507  			}
  9508  		}
  9509  		fieldNum := int32(wire >> 3)
  9510  		wireType := int(wire & 0x7)
  9511  		if wireType == 4 {
  9512  			return fmt.Errorf("proto: SourcePosition: wiretype end group for non-group")
  9513  		}
  9514  		if fieldNum <= 0 {
  9515  			return fmt.Errorf("proto: SourcePosition: illegal tag %d (wire type %d)", fieldNum, wire)
  9516  		}
  9517  		switch fieldNum {
  9518  		case 1:
  9519  			if wireType != 0 {
  9520  				return fmt.Errorf("proto: wrong wireType = %d for field ZeroIndexedLineNumber", wireType)
  9521  			}
  9522  			m.ZeroIndexedLineNumber = 0
  9523  			for shift := uint(0); ; shift += 7 {
  9524  				if shift >= 64 {
  9525  					return protohelpers.ErrIntOverflow
  9526  				}
  9527  				if iNdEx >= l {
  9528  					return io.ErrUnexpectedEOF
  9529  				}
  9530  				b := dAtA[iNdEx]
  9531  				iNdEx++
  9532  				m.ZeroIndexedLineNumber |= uint64(b&0x7F) << shift
  9533  				if b < 0x80 {
  9534  					break
  9535  				}
  9536  			}
  9537  		case 2:
  9538  			if wireType != 0 {
  9539  				return fmt.Errorf("proto: wrong wireType = %d for field ZeroIndexedColumnPosition", wireType)
  9540  			}
  9541  			m.ZeroIndexedColumnPosition = 0
  9542  			for shift := uint(0); ; shift += 7 {
  9543  				if shift >= 64 {
  9544  					return protohelpers.ErrIntOverflow
  9545  				}
  9546  				if iNdEx >= l {
  9547  					return io.ErrUnexpectedEOF
  9548  				}
  9549  				b := dAtA[iNdEx]
  9550  				iNdEx++
  9551  				m.ZeroIndexedColumnPosition |= uint64(b&0x7F) << shift
  9552  				if b < 0x80 {
  9553  					break
  9554  				}
  9555  			}
  9556  		default:
  9557  			iNdEx = preIndex
  9558  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  9559  			if err != nil {
  9560  				return err
  9561  			}
  9562  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  9563  				return protohelpers.ErrInvalidLength
  9564  			}
  9565  			if (iNdEx + skippy) > l {
  9566  				return io.ErrUnexpectedEOF
  9567  			}
  9568  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  9569  			iNdEx += skippy
  9570  		}
  9571  	}
  9572  
  9573  	if iNdEx > l {
  9574  		return io.ErrUnexpectedEOF
  9575  	}
  9576  	return nil
  9577  }
  9578  func (m *CaveatExpression) UnmarshalVT(dAtA []byte) error {
  9579  	l := len(dAtA)
  9580  	iNdEx := 0
  9581  	for iNdEx < l {
  9582  		preIndex := iNdEx
  9583  		var wire uint64
  9584  		for shift := uint(0); ; shift += 7 {
  9585  			if shift >= 64 {
  9586  				return protohelpers.ErrIntOverflow
  9587  			}
  9588  			if iNdEx >= l {
  9589  				return io.ErrUnexpectedEOF
  9590  			}
  9591  			b := dAtA[iNdEx]
  9592  			iNdEx++
  9593  			wire |= uint64(b&0x7F) << shift
  9594  			if b < 0x80 {
  9595  				break
  9596  			}
  9597  		}
  9598  		fieldNum := int32(wire >> 3)
  9599  		wireType := int(wire & 0x7)
  9600  		if wireType == 4 {
  9601  			return fmt.Errorf("proto: CaveatExpression: wiretype end group for non-group")
  9602  		}
  9603  		if fieldNum <= 0 {
  9604  			return fmt.Errorf("proto: CaveatExpression: illegal tag %d (wire type %d)", fieldNum, wire)
  9605  		}
  9606  		switch fieldNum {
  9607  		case 1:
  9608  			if wireType != 2 {
  9609  				return fmt.Errorf("proto: wrong wireType = %d for field Operation", wireType)
  9610  			}
  9611  			var msglen int
  9612  			for shift := uint(0); ; shift += 7 {
  9613  				if shift >= 64 {
  9614  					return protohelpers.ErrIntOverflow
  9615  				}
  9616  				if iNdEx >= l {
  9617  					return io.ErrUnexpectedEOF
  9618  				}
  9619  				b := dAtA[iNdEx]
  9620  				iNdEx++
  9621  				msglen |= int(b&0x7F) << shift
  9622  				if b < 0x80 {
  9623  					break
  9624  				}
  9625  			}
  9626  			if msglen < 0 {
  9627  				return protohelpers.ErrInvalidLength
  9628  			}
  9629  			postIndex := iNdEx + msglen
  9630  			if postIndex < 0 {
  9631  				return protohelpers.ErrInvalidLength
  9632  			}
  9633  			if postIndex > l {
  9634  				return io.ErrUnexpectedEOF
  9635  			}
  9636  			if oneof, ok := m.OperationOrCaveat.(*CaveatExpression_Operation); ok {
  9637  				if err := oneof.Operation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9638  					return err
  9639  				}
  9640  			} else {
  9641  				v := &CaveatOperation{}
  9642  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9643  					return err
  9644  				}
  9645  				m.OperationOrCaveat = &CaveatExpression_Operation{Operation: v}
  9646  			}
  9647  			iNdEx = postIndex
  9648  		case 2:
  9649  			if wireType != 2 {
  9650  				return fmt.Errorf("proto: wrong wireType = %d for field Caveat", wireType)
  9651  			}
  9652  			var msglen int
  9653  			for shift := uint(0); ; shift += 7 {
  9654  				if shift >= 64 {
  9655  					return protohelpers.ErrIntOverflow
  9656  				}
  9657  				if iNdEx >= l {
  9658  					return io.ErrUnexpectedEOF
  9659  				}
  9660  				b := dAtA[iNdEx]
  9661  				iNdEx++
  9662  				msglen |= int(b&0x7F) << shift
  9663  				if b < 0x80 {
  9664  					break
  9665  				}
  9666  			}
  9667  			if msglen < 0 {
  9668  				return protohelpers.ErrInvalidLength
  9669  			}
  9670  			postIndex := iNdEx + msglen
  9671  			if postIndex < 0 {
  9672  				return protohelpers.ErrInvalidLength
  9673  			}
  9674  			if postIndex > l {
  9675  				return io.ErrUnexpectedEOF
  9676  			}
  9677  			if oneof, ok := m.OperationOrCaveat.(*CaveatExpression_Caveat); ok {
  9678  				if err := oneof.Caveat.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9679  					return err
  9680  				}
  9681  			} else {
  9682  				v := &ContextualizedCaveat{}
  9683  				if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9684  					return err
  9685  				}
  9686  				m.OperationOrCaveat = &CaveatExpression_Caveat{Caveat: v}
  9687  			}
  9688  			iNdEx = postIndex
  9689  		default:
  9690  			iNdEx = preIndex
  9691  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  9692  			if err != nil {
  9693  				return err
  9694  			}
  9695  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  9696  				return protohelpers.ErrInvalidLength
  9697  			}
  9698  			if (iNdEx + skippy) > l {
  9699  				return io.ErrUnexpectedEOF
  9700  			}
  9701  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  9702  			iNdEx += skippy
  9703  		}
  9704  	}
  9705  
  9706  	if iNdEx > l {
  9707  		return io.ErrUnexpectedEOF
  9708  	}
  9709  	return nil
  9710  }
  9711  func (m *CaveatOperation) UnmarshalVT(dAtA []byte) error {
  9712  	l := len(dAtA)
  9713  	iNdEx := 0
  9714  	for iNdEx < l {
  9715  		preIndex := iNdEx
  9716  		var wire uint64
  9717  		for shift := uint(0); ; shift += 7 {
  9718  			if shift >= 64 {
  9719  				return protohelpers.ErrIntOverflow
  9720  			}
  9721  			if iNdEx >= l {
  9722  				return io.ErrUnexpectedEOF
  9723  			}
  9724  			b := dAtA[iNdEx]
  9725  			iNdEx++
  9726  			wire |= uint64(b&0x7F) << shift
  9727  			if b < 0x80 {
  9728  				break
  9729  			}
  9730  		}
  9731  		fieldNum := int32(wire >> 3)
  9732  		wireType := int(wire & 0x7)
  9733  		if wireType == 4 {
  9734  			return fmt.Errorf("proto: CaveatOperation: wiretype end group for non-group")
  9735  		}
  9736  		if fieldNum <= 0 {
  9737  			return fmt.Errorf("proto: CaveatOperation: illegal tag %d (wire type %d)", fieldNum, wire)
  9738  		}
  9739  		switch fieldNum {
  9740  		case 1:
  9741  			if wireType != 0 {
  9742  				return fmt.Errorf("proto: wrong wireType = %d for field Op", wireType)
  9743  			}
  9744  			m.Op = 0
  9745  			for shift := uint(0); ; shift += 7 {
  9746  				if shift >= 64 {
  9747  					return protohelpers.ErrIntOverflow
  9748  				}
  9749  				if iNdEx >= l {
  9750  					return io.ErrUnexpectedEOF
  9751  				}
  9752  				b := dAtA[iNdEx]
  9753  				iNdEx++
  9754  				m.Op |= CaveatOperation_Operation(b&0x7F) << shift
  9755  				if b < 0x80 {
  9756  					break
  9757  				}
  9758  			}
  9759  		case 2:
  9760  			if wireType != 2 {
  9761  				return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType)
  9762  			}
  9763  			var msglen int
  9764  			for shift := uint(0); ; shift += 7 {
  9765  				if shift >= 64 {
  9766  					return protohelpers.ErrIntOverflow
  9767  				}
  9768  				if iNdEx >= l {
  9769  					return io.ErrUnexpectedEOF
  9770  				}
  9771  				b := dAtA[iNdEx]
  9772  				iNdEx++
  9773  				msglen |= int(b&0x7F) << shift
  9774  				if b < 0x80 {
  9775  					break
  9776  				}
  9777  			}
  9778  			if msglen < 0 {
  9779  				return protohelpers.ErrInvalidLength
  9780  			}
  9781  			postIndex := iNdEx + msglen
  9782  			if postIndex < 0 {
  9783  				return protohelpers.ErrInvalidLength
  9784  			}
  9785  			if postIndex > l {
  9786  				return io.ErrUnexpectedEOF
  9787  			}
  9788  			m.Children = append(m.Children, &CaveatExpression{})
  9789  			if err := m.Children[len(m.Children)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
  9790  				return err
  9791  			}
  9792  			iNdEx = postIndex
  9793  		default:
  9794  			iNdEx = preIndex
  9795  			skippy, err := protohelpers.Skip(dAtA[iNdEx:])
  9796  			if err != nil {
  9797  				return err
  9798  			}
  9799  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  9800  				return protohelpers.ErrInvalidLength
  9801  			}
  9802  			if (iNdEx + skippy) > l {
  9803  				return io.ErrUnexpectedEOF
  9804  			}
  9805  			m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  9806  			iNdEx += skippy
  9807  		}
  9808  	}
  9809  
  9810  	if iNdEx > l {
  9811  		return io.ErrUnexpectedEOF
  9812  	}
  9813  	return nil
  9814  }