Projects STRLCPY bearer Commits 2f7ec373
🤬
  • ■ ■ ■ ■ ■ ■
    cmd/compilerules/main.go
    skipped 67 lines
    68 68   rule *settings.Rule,
    69 69  ) error {
    70 70   ruleRelation := fmt.Sprintf("Rule_Pattern_%s", ruleName)
    71  - writer.WriteRelation(ruleRelation, "node: AST_NodeId")
     71 + writer.WriteRelation(ruleRelation, "patternIndex: Rule_PatternIndex", "node: AST_NodeId")
    72 72   
    73 73   variableRelation := fmt.Sprintf("Rule_PatternVariable_%s", ruleName)
    74 74   // writer.WriteRelation(variableRelation, "node: AST_NodeId", "variable: Rule_VariableName", "variableNode: AST_NodeId")
    75 75   
    76 76   if err := writer.WriteRule(
    77  - []writerbase.Predicate{writer.Predicate("Rule", writer.Symbol(ruleName), writer.Identifier("node"))},
    78  - []writerbase.Literal{writer.Predicate(ruleRelation, writer.Identifier("node"))},
     77 + []writerbase.Predicate{writer.Predicate(
     78 + "Rule",
     79 + writer.Symbol(ruleName),
     80 + writer.Identifier("patternIndex"),
     81 + writer.Identifier("node"),
     82 + )},
     83 + []writerbase.Literal{writer.Predicate(
     84 + ruleRelation,
     85 + writer.Identifier("patternIndex"),
     86 + writer.Identifier("node"),
     87 + )},
    79 88   ); err != nil {
    80 89   return fmt.Errorf("error writing generic rule: %w", err)
    81 90   }
    82 91   
    83  - for _, pattern := range rule.Patterns {
    84  - if err := language.WriteRule(ruleRelation, variableRelation, pattern.Pattern, writer); err != nil {
     92 + for i, pattern := range rule.Patterns {
     93 + if err := language.WriteRule(ruleRelation, variableRelation, i, pattern.Pattern, writer); err != nil {
    85 94   return fmt.Errorf("pattern error (%s)': %w", pattern.Pattern, err)
    86 95   }
    87 96   }
    skipped 4 lines
  • ■ ■ ■ ■
    new/detector/composition/javascript/javascript.go
    skipped 180 lines
    181 181   return nil, fmt.Errorf("failed to parse file %s", err)
    182 182   }
    183 183   
    184  - evaluator := evaluator.New(composition.lang, composition.detectorSet, tree, file.FileInfo.Name())
     184 + evaluator := evaluator.New(nil, composition.lang, composition.detectorSet, tree, file.FileInfo.Name())
    185 185   
    186 186   var result []*detectortypes.Detection
    187 187   for _, detectorType := range detectorTypes {
    skipped 11 lines
  • ■ ■ ■ ■ ■ ■
    new/detector/composition/ruby/ruby.go
    skipped 18 lines
    19 19   "github.com/bearer/bearer/pkg/ast/languages/ruby"
    20 20   "github.com/bearer/bearer/pkg/classification"
    21 21   "github.com/bearer/bearer/pkg/commands/process/settings"
     22 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    22 23   "github.com/bearer/bearer/pkg/util/file"
     24 + "github.com/bearer/bearer/pkg/util/souffle"
    23 25   
    24 26   stringdetector "github.com/bearer/bearer/new/detector/implementation/ruby/string"
    25 27   detectorset "github.com/bearer/bearer/new/detector/set"
    skipped 153 lines
    179 181   return nil, fmt.Errorf("failed to parse file %s", err)
    180 182   }
    181 183   
     184 + souffle, err := souffle.New("souffle")
     185 + if err != nil {
     186 + return nil, err
     187 + }
     188 + 
    182 189   queryContext, err := soufflequery.NewContext(
    183 190   souffle,
    184 191   ruby.New(),
    185  - implementation,
     192 + composition.lang.Implementation(),
    186 193   tree,
    187  - []byte(input),
     194 + fileContent,
    188 195   )
    189 196   if err != nil {
    190  - return err
     197 + return nil, err
    191 198   }
    192 199   
    193  - evaluator := evaluator.New(composition.lang, composition.detectorSet, tree, file.FileInfo.Name())
     200 + evaluator := evaluator.New(queryContext, composition.lang, composition.detectorSet, tree, file.FileInfo.Name())
    194 201   
    195 202   var result []*detectortypes.Detection
    196 203   for _, detectorType := range detectorTypes {
    skipped 11 lines
  • ■ ■ ■ ■ ■
    new/detector/evaluator/evaluator.go
    skipped 6 lines
    7 7   "github.com/bearer/bearer/new/detector/types"
    8 8   langtree "github.com/bearer/bearer/new/language/tree"
    9 9   languagetypes "github.com/bearer/bearer/new/language/types"
     10 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    10 11   "golang.org/x/exp/slices"
    11 12  )
    12 13   
    13 14  type evaluator struct {
     15 + queryContext *soufflequery.QueryContext
    14 16   lang languagetypes.Language
    15 17   detectorSet types.DetectorSet
    16 18   detectionCache map[langtree.NodeID]map[string][]*types.Detection
    skipped 3 lines
    20 22  }
    21 23   
    22 24  func New(
     25 + queryContext *soufflequery.QueryContext,
    23 26   lang languagetypes.Language,
    24 27   detectorSet types.DetectorSet,
    25 28   tree *langtree.Tree,
    skipped 2 lines
    28 31   detectionCache := make(map[langtree.NodeID]map[string][]*types.Detection)
    29 32   
    30 33   return &evaluator{
     34 + queryContext: queryContext,
    31 35   lang: lang,
    32 36   fileName: fileName,
    33 37   detectorSet: detectorSet,
    skipped 217 lines
    251 255   }
    252 256   
    253 257   return evaluator.withCycleProtection(node, detectorType, func() error {
    254  - detections, err := evaluator.detectorSet.DetectAt(node, detectorType, evaluator)
     258 + detections, err := evaluator.detectorSet.DetectAt(node, detectorType, evaluator, evaluator.queryContext)
    255 259   if err != nil {
    256 260   return err
    257 261   }
    skipped 43 lines
  • ■ ■ ■ ■ ■
    new/detector/implementation/custom/custom.go
    skipped 6 lines
    7 7   "github.com/bearer/bearer/new/language/tree"
    8 8   languagetypes "github.com/bearer/bearer/new/language/types"
    9 9   "github.com/bearer/bearer/pkg/commands/process/settings"
     10 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    10 11  )
    11 12   
    12 13  type Data struct {
    skipped 42 lines
    55 56  func (detector *customDetector) DetectAt(
    56 57   node *tree.Node,
    57 58   evaluator types.Evaluator,
     59 + queryContext *soufflequery.QueryContext,
    58 60  ) ([]interface{}, error) {
    59 61   var detectionsData []interface{}
    60 62   
    61  - for _, pattern := range detector.patterns {
    62  - results, err := pattern.Query.MatchAt(node)
    63  - if err != nil {
    64  - return nil, err
     63 + for i, pattern := range detector.patterns {
     64 + var results []*languagetypes.PatternQueryResult
     65 + 
     66 + if queryContext == nil {
     67 + var err error
     68 + results, err = pattern.Query.MatchAt(node)
     69 + if err != nil {
     70 + return nil, err
     71 + }
     72 + } else {
     73 + results = queryContext.MatchAt(detector.detectorType, i, node)
    65 74   }
    66 75   
    67 76   for _, result := range results {
    skipped 25 lines
  • ■ ■ ■ ■ ■ ■
    new/detector/implementation/generic/datatype/datatype.go
    skipped 4 lines
    5 5   "github.com/bearer/bearer/new/language/tree"
    6 6   "github.com/bearer/bearer/pkg/report/detectors"
    7 7   "github.com/bearer/bearer/pkg/report/schema"
     8 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    8 9   
    9 10   generictypes "github.com/bearer/bearer/new/detector/implementation/generic/types"
    10 11   languagetypes "github.com/bearer/bearer/new/language/types"
    skipped 45 lines
    56 57  func (detector *datatypeDetector) DetectAt(
    57 58   node *tree.Node,
    58 59   evaluator types.Evaluator,
     60 + queryContext *soufflequery.QueryContext,
    59 61  ) ([]interface{}, error) {
    60 62   objectDetections, err := evaluator.ForNode(node, "object", false)
    61 63   if err != nil {
    skipped 49 lines
  • ■ ■ ■ ■ ■ ■
    new/detector/implementation/generic/insecureurl/insecureurl.go
    skipped 4 lines
    5 5   
    6 6   "github.com/bearer/bearer/new/detector/types"
    7 7   "github.com/bearer/bearer/new/language/tree"
     8 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    8 9   
    9 10   generictypes "github.com/bearer/bearer/new/detector/implementation/generic/types"
    10 11   languagetypes "github.com/bearer/bearer/new/language/types"
    skipped 16 lines
    27 28  func (detector *insecureURLDetector) DetectAt(
    28 29   node *tree.Node,
    29 30   evaluator types.Evaluator,
     31 + queryContext *soufflequery.QueryContext,
    30 32  ) ([]interface{}, error) {
    31 33   detections, err := evaluator.ForNode(node, "string", false)
    32 34   if err != nil {
    skipped 16 lines
  • ■ ■ ■ ■ ■ ■
    new/detector/implementation/generic/stringliteral/stringliteral.go
    skipped 2 lines
    3 3  import (
    4 4   "github.com/bearer/bearer/new/detector/types"
    5 5   "github.com/bearer/bearer/new/language/tree"
     6 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    6 7   
    7 8   generictypes "github.com/bearer/bearer/new/detector/implementation/generic/types"
    8 9   languagetypes "github.com/bearer/bearer/new/language/types"
    skipped 14 lines
    23 24  func (detector *stringLiteralDetector) DetectAt(
    24 25   node *tree.Node,
    25 26   evaluator types.Evaluator,
     27 + queryContext *soufflequery.QueryContext,
    26 28  ) ([]interface{}, error) {
    27 29   detections, err := evaluator.ForNode(node, "string", false)
    28 30   if err != nil {
    skipped 16 lines
  • ■ ■ ■ ■ ■ ■
    new/detector/implementation/javascript/object/object.go
    skipped 4 lines
    5 5   
    6 6   "github.com/bearer/bearer/new/detector/types"
    7 7   "github.com/bearer/bearer/new/language/tree"
     8 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    8 9   "github.com/bearer/bearer/pkg/util/stringutil"
    9 10   
    10 11   generictypes "github.com/bearer/bearer/new/detector/implementation/generic/types"
    skipped 102 lines
    113 114  func (detector *objectDetector) DetectAt(
    114 115   node *tree.Node,
    115 116   evaluator types.Evaluator,
     117 + queryContext *soufflequery.QueryContext,
    116 118  ) ([]interface{}, error) {
    117 119   detections, err := detector.getobject(node, evaluator)
    118 120   if len(detections) != 0 || err != nil {
    skipped 173 lines
  • ■ ■ ■ ■
    new/detector/implementation/javascript/property/property.go
    skipped 2 lines
    3 3  import (
    4 4   "fmt"
    5 5   
     6 + "github.com/rs/zerolog/log"
     7 + 
    6 8   "github.com/bearer/bearer/new/detector/types"
    7 9   "github.com/bearer/bearer/new/language/tree"
     10 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    8 11   "github.com/bearer/bearer/pkg/util/stringutil"
    9  - "github.com/rs/zerolog/log"
    10 12   
    11 13   generictypes "github.com/bearer/bearer/new/detector/implementation/generic/types"
    12 14   languagetypes "github.com/bearer/bearer/new/language/types"
    skipped 42 lines
    55 57  func (detector *propertyDetector) DetectAt(
    56 58   node *tree.Node,
    57 59   evaluator types.Evaluator,
     60 + queryContext *soufflequery.QueryContext,
    58 61  ) ([]interface{}, error) {
    59 62   // run pair query
    60 63   result, err := detector.pairQuery.MatchOnceAt(node)
    skipped 71 lines
  • ■ ■ ■ ■ ■ ■
    new/detector/implementation/javascript/string/string.go
    skipped 4 lines
    5 5   
    6 6   "github.com/bearer/bearer/new/detector/types"
    7 7   "github.com/bearer/bearer/new/language/tree"
     8 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    8 9   "github.com/bearer/bearer/pkg/util/stringutil"
    9 10   
    10 11   generictypes "github.com/bearer/bearer/new/detector/implementation/generic/types"
    skipped 15 lines
    26 27  func (detector *stringDetector) DetectAt(
    27 28   node *tree.Node,
    28 29   evaluator types.Evaluator,
     30 + queryContext *soufflequery.QueryContext,
    29 31  ) ([]interface{}, error) {
    30 32   switch node.Type() {
    31 33   case "string":
    skipped 91 lines
  • ■ ■ ■ ■ ■ ■
    new/detector/implementation/ruby/object/object.go
    skipped 4 lines
    5 5   
    6 6   "github.com/bearer/bearer/new/detector/types"
    7 7   "github.com/bearer/bearer/new/language/tree"
     8 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    8 9   
    9 10   generictypes "github.com/bearer/bearer/new/detector/implementation/generic/types"
    10 11   "github.com/bearer/bearer/new/detector/implementation/ruby/common"
    skipped 72 lines
    83 84  func (detector *objectDetector) DetectAt(
    84 85   node *tree.Node,
    85 86   evaluator types.Evaluator,
     87 + queryContext *soufflequery.QueryContext,
    86 88  ) ([]interface{}, error) {
    87 89   detections, err := detector.getHash(node, evaluator)
    88 90   if len(detections) != 0 || err != nil {
    skipped 139 lines
  • ■ ■ ■ ■ ■ ■
    new/detector/implementation/ruby/property/property.go
    skipped 4 lines
    5 5   
    6 6   "github.com/bearer/bearer/new/detector/types"
    7 7   "github.com/bearer/bearer/new/language/tree"
     8 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    8 9   
    9 10   generictypes "github.com/bearer/bearer/new/detector/implementation/generic/types"
    10 11   "github.com/bearer/bearer/new/detector/implementation/ruby/common"
    skipped 41 lines
    52 53  func (detector *propertyDetector) DetectAt(
    53 54   node *tree.Node,
    54 55   evaluator types.Evaluator,
     56 + queryContext *soufflequery.QueryContext,
    55 57  ) ([]interface{}, error) {
    56 58   // run hash pair query
    57 59   result, err := detector.pairQuery.MatchOnceAt(node)
    skipped 47 lines
  • ■ ■ ■ ■ ■ ■
    new/detector/implementation/ruby/string/string.go
    skipped 4 lines
    5 5   
    6 6   "github.com/bearer/bearer/new/detector/types"
    7 7   "github.com/bearer/bearer/new/language/tree"
     8 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    8 9   
    9 10   generictypes "github.com/bearer/bearer/new/detector/implementation/generic/types"
    10 11   languagetypes "github.com/bearer/bearer/new/language/types"
    skipped 14 lines
    25 26  func (detector *stringDetector) DetectAt(
    26 27   node *tree.Node,
    27 28   evaluator types.Evaluator,
     29 + queryContext *soufflequery.QueryContext,
    28 30  ) ([]interface{}, error) {
    29 31   switch node.Type() {
    30 32   case "string_content":
    skipped 55 lines
  • ■ ■ ■ ■ ■
    new/detector/set/set.go
    skipped 4 lines
    5 5   
    6 6   "github.com/bearer/bearer/new/detector/types"
    7 7   "github.com/bearer/bearer/new/language/tree"
     8 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    8 9  )
    9 10   
    10 11  type set struct {
    skipped 31 lines
    42 43   node *tree.Node,
    43 44   detectorType string,
    44 45   evaluator types.Evaluator,
     46 + queryContext *soufflequery.QueryContext,
    45 47  ) ([]*types.Detection, error) {
    46 48   detector, err := set.lookupDetector(detectorType)
    47 49   if err != nil {
    48 50   return nil, err
    49 51   }
    50 52   
    51  - detectionsData, err := detector.DetectAt(node, evaluator)
     53 + detectionsData, err := detector.DetectAt(node, evaluator, queryContext)
    52 54   if err != nil {
    53 55   return nil, err
    54 56   }
    skipped 22 lines
  • ■ ■ ■ ■ ■
    new/detector/types/types.go
    skipped 1 lines
    2 2   
    3 3  import (
    4 4   "github.com/bearer/bearer/new/language/tree"
     5 + soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    5 6   "github.com/bearer/bearer/pkg/util/file"
    6 7  )
    7 8   
    skipped 17 lines
    25 26   node *tree.Node,
    26 27   detectorType string,
    27 28   evaluator Evaluator,
     29 + queryContext *soufflequery.QueryContext,
    28 30   ) ([]*Detection, error)
    29 31  }
    30 32   
    31 33  type Detector interface {
    32 34   Name() string
    33  - DetectAt(node *tree.Node, evaluator Evaluator) ([]interface{}, error)
     35 + DetectAt(node *tree.Node, evaluator Evaluator, queryContext *soufflequery.QueryContext) ([]interface{}, error)
    34 36   NestedDetections() bool
    35 37   Close()
    36 38  }
    skipped 13 lines
  • ■ ■ ■ ■ ■
    new/language/base/base.go
    skipped 4 lines
    5 5   "github.com/bearer/bearer/new/language/patternquery"
    6 6   "github.com/bearer/bearer/new/language/tree"
    7 7   "github.com/bearer/bearer/new/language/types"
    8  - soufflequery "github.com/bearer/bearer/pkg/souffle/query"
    9 8  )
    10 9   
    11 10  type Language struct {
    12 11   implementation implementation.Implementation
    13  - souffle bool
    14 12  }
    15 13   
    16  -func New(souffle bool, implementation implementation.Implementation) *Language {
    17  - return &Language{souffle: souffle, implementation: implementation}
     14 +func New(implementation implementation.Implementation) *Language {
     15 + return &Language{implementation: implementation}
    18 16  }
    19 17   
    20 18  func (lang *Language) Implementation() implementation.Implementation {
    skipped 18 lines
    39 37  }
    40 38   
    41 39  func (lang *Language) CompilePatternQuery(ruleName, input string) (types.PatternQuery, error) {
    42  - if lang.souffle {
    43  - return soufflequery.NewQuery(ruleName), nil
    44  - }
    45  - 
    46 40   return patternquery.Compile(lang, lang.implementation, input)
    47 41  }
    48 42   
  • ■ ■ ■ ■ ■ ■
    pkg/ast/languages/ruby/patterns/patterns.go
    skipped 23 lines
    24 24  func newNodeVariableGenerator() *nodeVariableGenerator {
    25 25   return &nodeVariableGenerator{
    26 26   ids: make(map[*sitter.Node]uint32),
    27  - idGenerator: idgenerator.New(),
     27 + idGenerator: idgenerator.NewGenerator(),
    28 28   }
    29 29  }
    30 30   
    skipped 31 lines
    62 62   inputParams *builderinput.InputParams,
    63 63   ruleRelation,
    64 64   variableRelation string,
     65 + patternIndex int,
    65 66   input []byte,
    66 67   rootNode *sitter.Node,
    67 68   writer *filewriter.Writer,
    skipped 3 lines
    71 72   inputParams: inputParams,
    72 73   input: input,
    73 74   nodeVariableGenerator: newNodeVariableGenerator(),
    74  - tempIdGenerator: idgenerator.New(),
     75 + tempIdGenerator: idgenerator.NewGenerator(),
    75 76   handled: set.New[*sitter.Node](),
    76 77   variableNodes: make(map[string][]writerbase.Identifier),
    77 78   }
    skipped 26 lines
    104 105   // []writerbase.Predicate(nil), //variablePredicates,
    105 106   // writer.Predicate(ruleRelation, w.rootElement),
    106 107   // ),
    107  - []writerbase.Predicate{writer.Predicate(ruleRelation, w.rootElement)},
     108 + []writerbase.Predicate{writer.Predicate(ruleRelation, writer.Unsigned(uint32(patternIndex)), w.rootElement)},
    108 109   w.literals,
    109 110   ); err != nil {
    110 111   return err
    skipped 170 lines
  • ■ ■ ■ ■ ■ ■
    pkg/ast/languages/ruby/ruby.go
    skipped 51 lines
    52 52  func (language *Language) WriteRule(
    53 53   ruleRelation,
    54 54   variableRelation string,
     55 + patternIndex int,
    55 56   input string,
    56 57   writer *filewriter.Writer,
    57 58  ) error {
    skipped 14 lines
    72 73   inputParams,
    73 74   ruleRelation,
    74 75   variableRelation,
     76 + patternIndex,
    75 77   processedInputBytes,
    76 78   rootNode,
    77 79   writer,
    skipped 11 lines
  • ■ ■ ■ ■ ■
    pkg/souffle/query/query.go
    1 1  package query
    2 2   
    3 3  import (
    4  - "errors"
    5 4   "fmt"
    6 5   
    7 6   "github.com/bearer/bearer/new/language/implementation"
    skipped 8 lines
    16 15  )
    17 16   
    18 17  type QueryContext struct {
    19  - souffle souffle.Souffle
     18 + souffle *souffle.Souffle
    20 19   language *ruby.Language
    21 20   langImplementation implementation.Implementation
    22 21   cache map[string]map[uint32][]*languagetypes.PatternQueryResult
    skipped 1 lines
    24 23   tree *tree.Tree
    25 24  }
    26 25   
    27  -type Query struct {
    28  - context *QueryContext
    29  - ruleName string
    30  -}
    31  - 
    32 26  func NewContext(
    33  - souffle souffle.Souffle,
     27 + souffle *souffle.Souffle,
    34 28   language *ruby.Language,
    35 29   langImplementation implementation.Implementation,
    36 30   tree *tree.Tree,
    skipped 11 lines
    48 42   return context, context.run(tree.RootNode().SitterNode(), input)
    49 43  }
    50 44   
    51  -func (context *QueryContext) NewQuery(ruleName string) *Query {
    52  - return &Query{context: context, ruleName: ruleName}
    53  -}
    54  - 
    55  -func (context *QueryContext) get(node *tree.Node, ruleName string) []*languagetypes.PatternQueryResult {
    56  - nodeCache, ruleExists := context.cache[ruleName]
     45 +func (context *QueryContext) MatchAt(ruleName string, patternIndex int, node *tree.Node) []*languagetypes.PatternQueryResult {
     46 + nodeCache, ruleExists := context.cache[patternKey(ruleName, patternIndex)]
    57 47   if !ruleExists {
    58 48   return nil
    59 49   }
    skipped 1 lines
    61 51   return nodeCache[context.nodeIdGenerator.Get(node.SitterNode())]
    62 52  }
    63 53   
    64  -func (context *QueryContext) put(nodeId uint32, ruleName string, result *languagetypes.PatternQueryResult) {
    65  - nodeCache, ruleExists := context.cache[ruleName]
     54 +func (context *QueryContext) put(nodeId uint32, ruleName string, patternIndex int, result *languagetypes.PatternQueryResult) {
     55 + nodeCache, ruleExists := context.cache[patternKey(ruleName, patternIndex)]
    66 56   if !ruleExists {
    67 57   nodeCache = make(map[uint32][]*languagetypes.PatternQueryResult)
    68 58   context.cache[ruleName] = nodeCache
    skipped 30 lines
    99 89   return fmt.Errorf("failed to read tuple %d for Rule_Match: %w", i, err)
    100 90   }
    101 91   
    102  - context.put(match.Node, match.RuleName, &languagetypes.PatternQueryResult{
     92 + context.put(match.Node, match.RuleName, int(match.PatternIndex), &languagetypes.PatternQueryResult{
    103 93   MatchNode: context.tree.Wrap(context.nodeIdGenerator.InverseLookup(match.Node)),
    104 94   Variables: make(map[string]*tree.Node),
    105 95   })
    skipped 2 lines
    108 98   return nil
    109 99  }
    110 100   
    111  -func (query *Query) MatchAt(node *tree.Node) ([]*languagetypes.PatternQueryResult, error) {
    112  - return query.context.get(node, query.ruleName), nil
     101 +func patternKey(ruleName string, patternIndex int) string {
     102 + return fmt.Sprintf("%s:%d", ruleName, patternIndex)
    113 103  }
    114 104   
    115  -func (query *Query) MatchOnceAt(node *tree.Node) (*languagetypes.PatternQueryResult, error) {
    116  - results, err := query.MatchAt(node)
    117  - if err != nil {
    118  - return nil, err
    119  - }
    120  - 
    121  - if len(results) == 0 {
    122  - return nil, nil
    123  - }
    124  - if len(results) > 1 {
    125  - return nil, errors.New("query returned more than one result")
    126  - }
    127  - 
    128  - return results[0], nil
    129  -}
    130  - 
    131  -func (query *Query) Close() {}
    132  - 
  • ■ ■ ■ ■ ■ ■
    pkg/souffle/relationtypes/relationtypes.go
    skipped 4 lines
    5 5   */
    6 6   
    7 7  type Rule_Match struct {
    8  - RuleName string
    9  - Node uint32
    10  - Location AST_Location
     8 + RuleName string
     9 + PatternIndex uint32
     10 + Node uint32
     11 + Location AST_Location
    11 12  }
    12 13   
    13 14  type AST_Location struct {
    skipped 7 lines
  • pkg/souffle/rules/generated.cpp
    Unable to diff as the file is too large.
  • ■ ■ ■ ■ ■ ■
    souffle/generated/rules.dl
    1  -.decl Rule_Pattern_ruby_lang_ftp_using_user_input(node: AST_NodeId)
    2  -Rule("ruby_lang_ftp_using_user_input", node) :- Rule_Pattern_ruby_lang_ftp_using_user_input(node).
    3  -Rule_Pattern_ruby_lang_ftp_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    4  -Rule_Pattern_ruby_lang_ftp_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    5  -Rule_Pattern_ruby_lang_ftp_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    6  -.decl Rule_Pattern_ruby_lang_eval_using_user_input_user_input(node: AST_NodeId)
    7  -Rule("ruby_lang_eval_using_user_input_user_input", node) :- Rule_Pattern_ruby_lang_eval_using_user_input_user_input(node).
    8  -Rule_Pattern_ruby_lang_eval_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    9  -Rule_Pattern_ruby_lang_eval_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    10  -Rule_Pattern_ruby_lang_eval_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    11  -Rule_Pattern_ruby_lang_eval_using_user_input_user_input(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    12  -.decl Rule_Pattern_ruby_lang_reflection_using_user_input(node: AST_NodeId)
    13  -Rule("ruby_lang_reflection_using_user_input", node) :- Rule_Pattern_ruby_lang_reflection_using_user_input(node).
    14  -Rule_Pattern_ruby_lang_reflection_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    15  -Rule_Pattern_ruby_lang_reflection_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    16  -Rule_Pattern_ruby_lang_reflection_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    17  -Rule_Pattern_ruby_lang_reflection_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "to_proc").
    18  -Rule_Pattern_ruby_lang_reflection_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "block_argument"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    19  -Rule_Pattern_ruby_lang_reflection_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "block_argument"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    20  -Rule_Pattern_ruby_lang_reflection_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    21  -.decl Rule_Pattern_ruby_third_parties_algolia_index(node: AST_NodeId)
    22  -Rule("ruby_third_parties_algolia_index", node) :- Rule_Pattern_ruby_third_parties_algolia_index(node).
    23  -Rule_Pattern_ruby_third_parties_algolia_index(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "init_index").
    24  -.decl Rule_Pattern_ruby_rails_session_key_using_user_input(node: AST_NodeId)
    25  -Rule("ruby_rails_session_key_using_user_input", node) :- Rule_Pattern_ruby_rails_session_key_using_user_input(node).
    26  -Rule_Pattern_ruby_rails_session_key_using_user_input(node1) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "session"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
    27  -.decl Rule_Pattern_ruby_lang_http_url_using_user_input_net_http_new(node: AST_NodeId)
    28  -Rule("ruby_lang_http_url_using_user_input_net_http_new", node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_net_http_new(node).
    29  -Rule_Pattern_ruby_lang_http_url_using_user_input_net_http_new(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    30  -.decl Rule_Pattern_ruby_lang_eval_using_user_input(node: AST_NodeId)
    31  -Rule("ruby_lang_eval_using_user_input", node) :- Rule_Pattern_ruby_lang_eval_using_user_input(node).
    32  -Rule_Pattern_ruby_lang_eval_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "RubyVM"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "InstructionSequence"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "compile"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    33  -Rule_Pattern_ruby_lang_eval_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    34  -Rule_Pattern_ruby_lang_eval_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    35  -.decl Rule_Pattern_ruby_third_parties_segment(node: AST_NodeId)
    36  -Rule("ruby_third_parties_segment", node) :- Rule_Pattern_ruby_third_parties_segment(node).
    37  -Rule_Pattern_ruby_third_parties_segment(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    38  -.decl Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(node: AST_NodeId)
    39  -Rule("ruby_lang_http_url_using_user_input_net_http", node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(node).
    40  -Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(node1) :- AST_NodeType(node1, _).
    41  -Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "start"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    42  -Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "start").
    43  -.decl Rule_Pattern_ruby_third_parties_open_telemetry(node: AST_NodeId)
    44  -Rule("ruby_third_parties_open_telemetry", node) :- Rule_Pattern_ruby_third_parties_open_telemetry(node).
    45  -Rule_Pattern_ruby_third_parties_open_telemetry(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    46  -Rule_Pattern_ruby_third_parties_open_telemetry(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "in_span"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    47  -.decl Rule_Pattern_open_telemetry_current_span(node: AST_NodeId)
    48  -Rule("open_telemetry_current_span", node) :- Rule_Pattern_open_telemetry_current_span(node).
    49  -Rule_Pattern_open_telemetry_current_span(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "OpenTelemetry"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Trace"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "current_span").
    50  -Rule_Pattern_open_telemetry_current_span(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "in_span"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    51  -.decl Rule_Pattern_ruby_lang_exception(node: AST_NodeId)
    52  -Rule("ruby_lang_exception", node) :- Rule_Pattern_ruby_lang_exception(node).
    53  -Rule_Pattern_ruby_lang_exception(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "raise"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    54  -.decl Rule_Pattern_ruby_rails_logger(node: AST_NodeId)
    55  -Rule("ruby_rails_logger", node) :- Rule_Pattern_ruby_rails_logger(node).
    56  -Rule_Pattern_ruby_rails_logger(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Rails"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "logger"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    57  -.decl Rule_Pattern_ruby_lang_deserialization_of_user_input_user_input(node: AST_NodeId)
    58  -Rule("ruby_lang_deserialization_of_user_input_user_input", node) :- Rule_Pattern_ruby_lang_deserialization_of_user_input_user_input(node).
    59  -Rule_Pattern_ruby_lang_deserialization_of_user_input_user_input(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    60  -Rule_Pattern_ruby_lang_deserialization_of_user_input_user_input(node1) :- AST_NodeType(node1, _).
    61  -.decl Rule_Pattern_ruby_third_parties_bigquery(node: AST_NodeId)
    62  -Rule("ruby_third_parties_bigquery", node) :- Rule_Pattern_ruby_third_parties_bigquery(node).
    63  -Rule_Pattern_ruby_third_parties_bigquery(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    64  -.decl Rule_Pattern_ruby_third_parties_bigquery_dataset(node: AST_NodeId)
    65  -Rule("ruby_third_parties_bigquery_dataset", node) :- Rule_Pattern_ruby_third_parties_bigquery_dataset(node).
    66  -Rule_Pattern_ruby_third_parties_bigquery_dataset(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "dataset").
    67  -.decl Rule_Pattern_ruby_third_parties_clickhouse(node: AST_NodeId)
    68  -Rule("ruby_third_parties_clickhouse", node) :- Rule_Pattern_ruby_third_parties_clickhouse(node).
    69  -Rule_Pattern_ruby_third_parties_clickhouse(node1) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "<<"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
    70  -.decl Rule_Pattern_ruby_lang_file_generation_file(node: AST_NodeId)
    71  -Rule("ruby_lang_file_generation_file", node) :- Rule_Pattern_ruby_lang_file_generation_file(node).
    72  -Rule_Pattern_ruby_lang_file_generation_file(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "generate").
    73  -Rule_Pattern_ruby_lang_file_generation_file(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "generate"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    74  -Rule_Pattern_ruby_lang_file_generation_file(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
    75  -Rule_Pattern_ruby_lang_file_generation_file(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    76  -Rule_Pattern_ruby_lang_file_generation_file(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "File"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
    77  -Rule_Pattern_ruby_lang_file_generation_file(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "File"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    78  -Rule_Pattern_ruby_lang_file_generation_file(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
    79  -Rule_Pattern_ruby_lang_file_generation_file(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    80  -.decl Rule_Pattern_ruby_lang_cookies(node: AST_NodeId)
    81  -Rule("ruby_lang_cookies", node) :- Rule_Pattern_ruby_lang_cookies(node).
    82  -Rule_Pattern_ruby_lang_cookies(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "cookies"), AST_ParentChild(node2, 0, node4), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    83  -Rule_Pattern_ruby_lang_cookies(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), (!AST_NodeField(node3, _, "arguments"); AST_NodeField(node3, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node3, node4, "receiver"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "cookies"), AST_NodeField(node3, node5, "method"), AST_NodeType(node5, _), AST_ParentChild(node2, 0, node6), AST_NodeType(node6, _), AST_NodeField(node1, node7, "right"), AST_NodeType(node7, _).
    84  -.decl Rule_Pattern_google_dataflow_value_classes(node: AST_NodeId)
    85  -Rule("google_dataflow_value_classes", node) :- Rule_Pattern_google_dataflow_value_classes(node).
    86  -.decl Rule_Pattern_ruby_lang_exec_using_user_input(node: AST_NodeId)
    87  -Rule("ruby_lang_exec_using_user_input", node) :- Rule_Pattern_ruby_lang_exec_using_user_input(node).
    88  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Kernel"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    89  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    90  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "popen"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    91  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Process"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    92  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Open3"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    93  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Gem"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Util"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    94  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "PTY"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "spawn"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    95  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "subshell"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, _).
    96  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "subshell"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "string_content"), AST_NodeContent(node2, "{CurioVar0").
    97  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    98  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    99  -Rule_Pattern_ruby_lang_exec_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "system"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    100  -.decl Rule_Pattern_ruby_lang_weak_encryption_with_data_blowfish_init(node: AST_NodeId)
    101  -Rule("ruby_lang_weak_encryption_with_data_blowfish_init", node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data_blowfish_init(node).
    102  -Rule_Pattern_ruby_lang_weak_encryption_with_data_blowfish_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Crypt"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Blowfish"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    103  -.decl Rule_Pattern_ruby_lang_http_url_using_user_input_path_hash(node: AST_NodeId)
    104  -Rule("ruby_lang_http_url_using_user_input_path_hash", node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_path_hash(node).
    105  -Rule_Pattern_ruby_lang_http_url_using_user_input_path_hash(node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":path"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "path")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    106  -.decl Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(node: AST_NodeId)
    107  -Rule("ruby_lang_reflection_using_user_input_user_input", node) :- Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(node).
    108  -Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    109  -Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    110  -Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    111  -Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    112  -.decl Rule_Pattern_ruby_rails_render_using_user_input(node: AST_NodeId)
    113  -Rule("ruby_rails_render_using_user_input", node) :- Rule_Pattern_ruby_rails_render_using_user_input(node).
    114  -Rule_Pattern_ruby_rails_render_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "render"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":inline"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "inline")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    115  -Rule_Pattern_ruby_rails_render_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "render"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":html"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "html")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    116  -.decl Rule_Pattern_ruby_lang_path_using_user_input_pathname(node: AST_NodeId)
    117  -Rule("ruby_lang_path_using_user_input_pathname", node) :- Rule_Pattern_ruby_lang_path_using_user_input_pathname(node).
    118  -Rule_Pattern_ruby_lang_path_using_user_input_pathname(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rails"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "root").
    119  -Rule_Pattern_ruby_lang_path_using_user_input_pathname(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Pathname"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    120  -.decl Rule_Pattern_google_dataflow_config(node: AST_NodeId)
    121  -Rule("google_dataflow_config", node) :- Rule_Pattern_google_dataflow_config(node).
    122  -Rule_Pattern_google_dataflow_config(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "configure").
    123  -Rule_Pattern_google_dataflow_config(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "configure"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    124  -.decl Rule_Pattern_ruby_lang_exec_using_user_input_shell_cmd_proc(node: AST_NodeId)
    125  -Rule("ruby_lang_exec_using_user_input_shell_cmd_proc", node) :- Rule_Pattern_ruby_lang_exec_using_user_input_shell_cmd_proc(node).
    126  -Rule_Pattern_ruby_lang_exec_using_user_input_shell_cmd_proc(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "command_processor").
    127  -Rule_Pattern_ruby_lang_exec_using_user_input_shell_cmd_proc(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    128  -.decl Rule_Pattern_google_dataflow_message_text_classes(node: AST_NodeId)
    129  -Rule("google_dataflow_message_text_classes", node) :- Rule_Pattern_google_dataflow_message_text_classes(node).
    130  -.decl Rule_Pattern_ruby_lang_http_post_insecure_with_data(node: AST_NodeId)
    131  -Rule("ruby_lang_http_post_insecure_with_data", node) :- Rule_Pattern_ruby_lang_http_post_insecure_with_data(node).
    132  -Rule_Pattern_ruby_lang_http_post_insecure_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "post_form"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _), AST_ParentChild(node6, 1, node8), AST_NodeType(node8, _).
    133  -Rule_Pattern_ruby_lang_http_post_insecure_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "post"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    134  -.decl Rule_Pattern_ruby_third_parties_algolia_client(node: AST_NodeId)
    135  -Rule("ruby_third_parties_algolia_client", node) :- Rule_Pattern_ruby_third_parties_algolia_client(node).
    136  -Rule_Pattern_ruby_third_parties_algolia_client(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Algolia"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Search"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Client"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "create").
    137  -.decl Rule_Pattern_ruby_rails_render_using_user_input_user_input(node: AST_NodeId)
    138  -Rule("ruby_rails_render_using_user_input_user_input", node) :- Rule_Pattern_ruby_rails_render_using_user_input_user_input(node).
    139  -Rule_Pattern_ruby_rails_render_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    140  -Rule_Pattern_ruby_rails_render_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    141  -Rule_Pattern_ruby_rails_render_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    142  -.decl Rule_Pattern_ruby_third_parties_airbrake(node: AST_NodeId)
    143  -Rule("ruby_third_parties_airbrake", node) :- Rule_Pattern_ruby_third_parties_airbrake(node).
    144  -Rule_Pattern_ruby_third_parties_airbrake(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Airbrake"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    145  -Rule_Pattern_ruby_third_parties_airbrake(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Airbrake"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "merge_context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    146  -Rule_Pattern_ruby_third_parties_airbrake(node1) :- AST_NodeType(node1, "method"), !AST_NodeField(node1, _, "parameters"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "to_airbrake"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
    147  -.decl Rule_Pattern_ruby_third_parties_google_dataflow(node: AST_NodeId)
    148  -Rule("ruby_third_parties_google_dataflow", node) :- Rule_Pattern_ruby_third_parties_google_dataflow(node).
    149  -Rule_Pattern_ruby_third_parties_google_dataflow(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "message_text"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    150  -Rule_Pattern_ruby_third_parties_google_dataflow(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "description"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    151  -Rule_Pattern_ruby_third_parties_google_dataflow(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "value"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    152  -Rule_Pattern_ruby_third_parties_google_dataflow(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "create_job_from_template"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    153  -Rule_Pattern_ruby_third_parties_google_dataflow(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    154  -Rule_Pattern_ruby_third_parties_google_dataflow(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "metadata"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    155  -.decl Rule_Pattern_ruby_third_parties_rollbar_scope(node: AST_NodeId)
    156  -Rule("ruby_third_parties_rollbar_scope", node) :- Rule_Pattern_ruby_third_parties_rollbar_scope(node).
    157  -Rule_Pattern_ruby_third_parties_rollbar_scope(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scope").
    158  -.decl Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_trans_user_input(node: AST_NodeId)
    159  -Rule("ruby_lang_path_using_user_input_shell_cmd_trans_user_input", node) :- Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_trans_user_input(node).
    160  -Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_trans_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    161  -.decl Rule_Pattern_ruby_lang_deserialization_of_user_input_sanitized_user_input(node: AST_NodeId)
    162  -Rule("ruby_lang_deserialization_of_user_input_sanitized_user_input", node) :- Rule_Pattern_ruby_lang_deserialization_of_user_input_sanitized_user_input(node).
    163  -Rule_Pattern_ruby_lang_deserialization_of_user_input_sanitized_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "JSON"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "parse").
    164  -Rule_Pattern_ruby_lang_deserialization_of_user_input_sanitized_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Nokogiri"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "XML").
    165  -.decl Rule_Pattern_segment_init(node: AST_NodeId)
    166  -Rule("segment_init", node) :- Rule_Pattern_segment_init(node).
    167  -Rule_Pattern_segment_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Segment"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Analytics"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    168  -.decl Rule_Pattern_ruby_third_parties_bugsnag(node: AST_NodeId)
    169  -Rule("ruby_third_parties_bugsnag", node) :- Rule_Pattern_ruby_third_parties_bugsnag(node).
    170  -Rule_Pattern_ruby_third_parties_bugsnag(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Bugsnag"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "leave_breadcrumb"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    171  -Rule_Pattern_ruby_third_parties_bugsnag(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Bugsnag"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "notify"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    172  -.decl Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_proc(node: AST_NodeId)
    173  -Rule("ruby_lang_path_using_user_input_shell_cmd_proc", node) :- Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_proc(node).
    174  -Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_proc(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "command_processor").
    175  -Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_proc(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    176  -.decl Rule_Pattern_ruby_third_parties_algolia(node: AST_NodeId)
    177  -Rule("ruby_third_parties_algolia", node) :- Rule_Pattern_ruby_third_parties_algolia(node).
    178  -Rule_Pattern_ruby_third_parties_algolia(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    179  -.decl Rule_Pattern_ruby_lang_http_url_using_user_input(node: AST_NodeId)
    180  -Rule("ruby_lang_http_url_using_user_input", node) :- Rule_Pattern_ruby_lang_http_url_using_user_input(node).
    181  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    182  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    183  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    184  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "send_request"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    185  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "ipaddr"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    186  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    187  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Curl"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "http"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    188  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Curl"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    189  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    190  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "url"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    191  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Multi"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    192  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Multi"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    193  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Excon"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Connection"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    194  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    195  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":path"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "path")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
    196  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":path"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "path")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
    197  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "requests"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    198  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    199  -Rule_Pattern_ruby_lang_http_url_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "post"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    200  -.decl Rule_Pattern_openssl_dsa_init(node: AST_NodeId)
    201  -Rule("openssl_dsa_init", node) :- Rule_Pattern_openssl_dsa_init(node).
    202  -Rule_Pattern_openssl_dsa_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "DSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    203  -.decl Rule_Pattern_google_dataflow_template_metadata_init(node: AST_NodeId)
    204  -Rule("google_dataflow_template_metadata_init", node) :- Rule_Pattern_google_dataflow_template_metadata_init(node).
    205  -.decl Rule_Pattern_ruby_third_parties_rollbar(node: AST_NodeId)
    206  -Rule("ruby_third_parties_rollbar", node) :- Rule_Pattern_ruby_third_parties_rollbar(node).
    207  -Rule_Pattern_ruby_third_parties_rollbar(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "rollbar_context"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    208  -Rule_Pattern_ruby_third_parties_rollbar(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    209  -Rule_Pattern_ruby_third_parties_rollbar(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "log"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    210  -Rule_Pattern_ruby_third_parties_rollbar(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scope"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    211  -Rule_Pattern_ruby_third_parties_rollbar(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scoped"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    212  -.decl Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(node: AST_NodeId)
    213  -Rule("ruby_lang_ftp_using_user_input_ftp", node) :- Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(node).
    214  -Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    215  -Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open").
    216  -Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "block"), AST_NodeField(node6, node7, "parameters"), AST_NodeType(node7, "block_parameters"), AST_ParentChild(node7, 0, node8), AST_NodeType(node8, _).
    217  -.decl Rule_Pattern_google_dataflow_description_classes(node: AST_NodeId)
    218  -Rule("google_dataflow_description_classes", node) :- Rule_Pattern_google_dataflow_description_classes(node).
    219  -Rule_Pattern_google_dataflow_description_classes(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get_snapshot").
    220  -.decl Rule_Pattern_ruby_lang_logger(node: AST_NodeId)
    221  -Rule("ruby_lang_logger", node) :- Rule_Pattern_ruby_lang_logger(node).
    222  -Rule_Pattern_ruby_lang_logger(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "logger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    223  -.decl Rule_Pattern_ruby_third_parties_elasticsearch_client(node: AST_NodeId)
    224  -Rule("ruby_third_parties_elasticsearch_client", node) :- Rule_Pattern_ruby_third_parties_elasticsearch_client(node).
    225  -Rule_Pattern_ruby_third_parties_elasticsearch_client(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Elasticsearch"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Client"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    226  -Rule_Pattern_ruby_third_parties_elasticsearch_client(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Elasticsearch"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Client"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    227  -.decl Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_dsa_init(node: AST_NodeId)
    228  -Rule("ruby_lang_weak_encryption_with_data_openssl_dsa_init", node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_dsa_init(node).
    229  -Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_dsa_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "DSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    230  -.decl Rule_Pattern_ruby_rails_redirect_to_user_input(node: AST_NodeId)
    231  -Rule("ruby_rails_redirect_to_user_input", node) :- Rule_Pattern_ruby_rails_redirect_to_user_input(node).
    232  -Rule_Pattern_ruby_rails_redirect_to_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    233  -Rule_Pattern_ruby_rails_redirect_to_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    234  -Rule_Pattern_ruby_rails_redirect_to_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    235  -.decl Rule_Pattern_openssl_rsa_init(node: AST_NodeId)
    236  -Rule("openssl_rsa_init", node) :- Rule_Pattern_openssl_rsa_init(node).
    237  -.decl Rule_Pattern_ruby_lang_weak_encryption_with_data(node: AST_NodeId)
    238  -Rule("ruby_lang_weak_encryption_with_data", node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data(node).
    239  -Rule_Pattern_ruby_lang_weak_encryption_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "SHA1"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexidigest"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    240  -Rule_Pattern_ruby_lang_weak_encryption_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "MD5"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexdigest"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    241  -Rule_Pattern_ruby_lang_weak_encryption_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    242  -Rule_Pattern_ruby_lang_weak_encryption_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    243  -Rule_Pattern_ruby_lang_weak_encryption_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    244  -Rule_Pattern_ruby_lang_weak_encryption_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    245  -Rule_Pattern_ruby_lang_weak_encryption_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    246  -Rule_Pattern_ruby_lang_weak_encryption_with_data(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    247  -Rule_Pattern_ruby_lang_weak_encryption_with_data(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    248  -.decl Rule_Pattern_ruby_rails_session(node: AST_NodeId)
    249  -Rule("ruby_rails_session", node) :- Rule_Pattern_ruby_rails_session(node).
    250  -Rule_Pattern_ruby_rails_session(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "session"), AST_ParentChild(node2, 0, node4), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    251  -.decl Rule_Pattern_ruby_third_parties_sentry(node: AST_NodeId)
    252  -Rule("ruby_third_parties_sentry", node) :- Rule_Pattern_ruby_third_parties_sentry(node).
    253  -Rule_Pattern_ruby_third_parties_sentry(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Sentry"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Breadcrumb"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    254  -Rule_Pattern_ruby_third_parties_sentry(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "capture_message"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    255  -Rule_Pattern_ruby_third_parties_sentry(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    256  -Rule_Pattern_ruby_third_parties_sentry(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_extras"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    257  -Rule_Pattern_ruby_third_parties_sentry(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_tags"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    258  -Rule_Pattern_ruby_third_parties_sentry(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_user"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    259  -.decl Rule_Pattern_ruby_lang_exec_using_user_input_user_input(node: AST_NodeId)
    260  -Rule("ruby_lang_exec_using_user_input_user_input", node) :- Rule_Pattern_ruby_lang_exec_using_user_input_user_input(node).
    261  -Rule_Pattern_ruby_lang_exec_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    262  -Rule_Pattern_ruby_lang_exec_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    263  -Rule_Pattern_ruby_lang_exec_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    264  -Rule_Pattern_ruby_lang_exec_using_user_input_user_input(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    265  -.decl Rule_Pattern_ruby_lang_weak_encryption(node: AST_NodeId)
    266  -Rule("ruby_lang_weak_encryption", node) :- Rule_Pattern_ruby_lang_weak_encryption(node).
    267  -Rule_Pattern_ruby_lang_weak_encryption(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "SHA1"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexidigest").
    268  -Rule_Pattern_ruby_lang_weak_encryption(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "MD5"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexdigest").
    269  -Rule_Pattern_ruby_lang_weak_encryption(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    270  -Rule_Pattern_ruby_lang_weak_encryption(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    271  -Rule_Pattern_ruby_lang_weak_encryption(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    272  -Rule_Pattern_ruby_lang_weak_encryption(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    273  -Rule_Pattern_ruby_lang_weak_encryption(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
    274  -Rule_Pattern_ruby_lang_weak_encryption(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    275  -.decl Rule_Pattern_ruby_third_parties_datadog_span(node: AST_NodeId)
    276  -Rule("ruby_third_parties_datadog_span", node) :- Rule_Pattern_ruby_third_parties_datadog_span(node).
    277  -Rule_Pattern_ruby_third_parties_datadog_span(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "active_span").
    278  -Rule_Pattern_ruby_third_parties_datadog_span(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "trace"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "block"), AST_NodeField(node6, node7, "parameters"), AST_NodeType(node7, "block_parameters"), AST_ParentChild(node7, 0, node8), AST_NodeType(node8, _).
    279  -.decl Rule_Pattern_ruby_lang_http_get_params(node: AST_NodeId)
    280  -Rule("ruby_lang_http_get_params", node) :- Rule_Pattern_ruby_lang_http_get_params(node).
    281  -Rule_Pattern_ruby_lang_http_get_params(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "encode_www_form"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    282  -Rule_Pattern_ruby_lang_http_get_params(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    283  -Rule_Pattern_ruby_lang_http_get_params(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    284  -.decl Rule_Pattern_rc4_init(node: AST_NodeId)
    285  -Rule("rc4_init", node) :- Rule_Pattern_rc4_init(node).
    286  -Rule_Pattern_rc4_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "RC4"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
    287  -.decl Rule_Pattern_ruby_rails_insecure_http_password(node: AST_NodeId)
    288  -Rule("ruby_rails_insecure_http_password", node) :- Rule_Pattern_ruby_rails_insecure_http_password(node).
    289  -.decl Rule_Pattern_ruby_lang_http_insecure_url_hash(node: AST_NodeId)
    290  -Rule("ruby_lang_http_insecure_url_hash", node) :- Rule_Pattern_ruby_lang_http_insecure_url_hash(node).
    291  -Rule_Pattern_ruby_lang_http_insecure_url_hash(node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":url"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "url")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    292  -.decl Rule_Pattern_ruby_lang_regex_using_user_input_user_input(node: AST_NodeId)
    293  -Rule("ruby_lang_regex_using_user_input_user_input", node) :- Rule_Pattern_ruby_lang_regex_using_user_input_user_input(node).
    294  -Rule_Pattern_ruby_lang_regex_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    295  -Rule_Pattern_ruby_lang_regex_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    296  -Rule_Pattern_ruby_lang_regex_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    297  -Rule_Pattern_ruby_lang_regex_using_user_input_user_input(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    298  -.decl Rule_Pattern_ruby_rails_default_encryption(node: AST_NodeId)
    299  -Rule("ruby_rails_default_encryption", node) :- Rule_Pattern_ruby_rails_default_encryption(node).
    300  -Rule_Pattern_ruby_rails_default_encryption(node1) :- AST_NodeType(node1, "class"), !AST_NodeField(node1, _, "superclass"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "receiver"), !AST_NodeField(node3, _, "block"), AST_NodeField(node3, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "encrypts"), AST_NodeField(node3, node5, "arguments"), AST_NodeType(node5, "argument_list"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
    301  -.decl Rule_Pattern_ruby_lang_jwt(node: AST_NodeId)
    302  -Rule("ruby_lang_jwt", node) :- Rule_Pattern_ruby_lang_jwt(node).
    303  -Rule_Pattern_ruby_lang_jwt(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "JWT"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "encode"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    304  -.decl Rule_Pattern_ruby_lang_http_insecure(node: AST_NodeId)
    305  -Rule("ruby_lang_http_insecure", node) :- Rule_Pattern_ruby_lang_http_insecure(node).
    306  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    307  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    308  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    309  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Curl"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "http"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    310  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Curl"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    311  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    312  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "url"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    313  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Multi"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    314  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Multi"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    315  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    316  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    317  -Rule_Pattern_ruby_lang_http_insecure(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "post"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    318  -.decl Rule_Pattern_ruby_lang_file_generation(node: AST_NodeId)
    319  -Rule("ruby_lang_file_generation", node) :- Rule_Pattern_ruby_lang_file_generation(node).
    320  -Rule_Pattern_ruby_lang_file_generation(node1) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "<<"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
    321  -Rule_Pattern_ruby_lang_file_generation(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    322  -.decl Rule_Pattern_ruby_lang_http_url_using_user_input_curb(node: AST_NodeId)
    323  -Rule("ruby_lang_http_url_using_user_input_curb", node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_curb(node).
    324  -Rule_Pattern_ruby_lang_http_url_using_user_input_curb(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    325  -.decl Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(node: AST_NodeId)
    326  -Rule("ruby_rails_session_key_using_user_input_user_input", node) :- Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(node).
    327  -Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    328  -Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    329  -Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    330  -.decl Rule_Pattern_ruby_third_parties_bigquery_insert_async(node: AST_NodeId)
    331  -Rule("ruby_third_parties_bigquery_insert_async", node) :- Rule_Pattern_ruby_third_parties_bigquery_insert_async(node).
    332  -Rule_Pattern_ruby_third_parties_bigquery_insert_async(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
    333  -Rule_Pattern_ruby_third_parties_bigquery_insert_async(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
    334  -Rule_Pattern_ruby_third_parties_bigquery_insert_async(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
    335  -.decl Rule_Pattern_ruby_third_parties_new_relic(node: AST_NodeId)
    336  -Rule("ruby_third_parties_new_relic", node) :- Rule_Pattern_ruby_third_parties_new_relic(node).
    337  -Rule_Pattern_ruby_third_parties_new_relic(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_custom_attributes"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    338  -Rule_Pattern_ruby_third_parties_new_relic(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_custom_parameters"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    339  -Rule_Pattern_ruby_third_parties_new_relic(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "notice_error"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    340  -.decl Rule_Pattern_ruby_lang_hardcoded_secret(node: AST_NodeId)
    341  -Rule("ruby_lang_hardcoded_secret", node) :- Rule_Pattern_ruby_lang_hardcoded_secret(node).
    342  -Rule_Pattern_ruby_lang_hardcoded_secret(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "right"), AST_NodeType(node3, _).
    343  -Rule_Pattern_ruby_lang_hardcoded_secret(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    344  -Rule_Pattern_ruby_lang_hardcoded_secret(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, node5, "key"), AST_NodeType(node5, _), AST_NodeField(node4, node6, "value"), AST_NodeType(node6, _).
    345  -Rule_Pattern_ruby_lang_hardcoded_secret(node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar0"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar0")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    346  -Rule_Pattern_ruby_lang_hardcoded_secret(node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, node3, "key"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "value"), AST_NodeType(node4, _).
    347  -.decl Rule_Pattern_ruby_lang_insecure_ftp(node: AST_NodeId)
    348  -Rule("ruby_lang_insecure_ftp", node) :- Rule_Pattern_ruby_lang_insecure_ftp(node).
    349  -Rule_Pattern_ruby_lang_insecure_ftp(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    350  -Rule_Pattern_ruby_lang_insecure_ftp(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "do_block"), !AST_NodeField(node6, _, "parameters"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    351  -Rule_Pattern_ruby_lang_insecure_ftp(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open").
    352  -.decl Rule_Pattern_ruby_rails_insecure_smtp(node: AST_NodeId)
    353  -Rule("ruby_rails_insecure_smtp", node) :- Rule_Pattern_ruby_rails_insecure_smtp(node).
    354  -.decl Rule_Pattern_ruby_lang_regex_using_user_input(node: AST_NodeId)
    355  -Rule("ruby_lang_regex_using_user_input", node) :- Rule_Pattern_ruby_lang_regex_using_user_input(node).
    356  -Rule_Pattern_ruby_lang_regex_using_user_input(node1) :- AST_NodeType(node1, "regex"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "interpolation"), AST_ParentChild(node2, 0, node3), AST_NodeType(node3, _).
    357  -Rule_Pattern_ruby_lang_regex_using_user_input(node1) :- AST_NodeType(node1, "regex"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "interpolation"), AST_ParentChild(node2, 0, node3), AST_NodeType(node3, _).
    358  -Rule_Pattern_ruby_lang_regex_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Regexp"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    359  -.decl Rule_Pattern_ruby_lang_http_url_using_user_input_excon(node: AST_NodeId)
    360  -Rule("ruby_lang_http_url_using_user_input_excon", node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_excon(node).
    361  -Rule_Pattern_ruby_lang_http_url_using_user_input_excon(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
    362  -Rule_Pattern_ruby_lang_http_url_using_user_input_excon(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Excon"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Connection"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    363  -.decl Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_rsa_init(node: AST_NodeId)
    364  -Rule("ruby_lang_weak_encryption_with_data_openssl_rsa_init", node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_rsa_init(node).
    365  -Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_rsa_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "RSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    366  -.decl Rule_Pattern_ruby_rails_redirect_to(node: AST_NodeId)
    367  -Rule("ruby_rails_redirect_to", node) :- Rule_Pattern_ruby_rails_redirect_to(node).
    368  -Rule_Pattern_ruby_rails_redirect_to(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "redirect_to"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    369  -.decl Rule_Pattern_ruby_rails_permissive_regex_validation(node: AST_NodeId)
    370  -Rule("ruby_rails_permissive_regex_validation", node) :- Rule_Pattern_ruby_rails_permissive_regex_validation(node).
    371  -Rule_Pattern_ruby_rails_permissive_regex_validation(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "validates"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":format"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "format")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, "hash"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, "pair"), AST_NodeField(node6, tmp1, "key"), (AST_NodeType(tmp1, "simple_symbol"), AST_NodeContent(tmp1, ":with"); AST_NodeType(tmp1, "hash_key_symbol"), AST_NodeContent(tmp1, "with")), AST_NodeField(node6, node7, "value"), AST_NodeType(node7, _).
    372  -Rule_Pattern_ruby_rails_permissive_regex_validation(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "validates_format_of"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":with"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "with")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    373  -.decl Rule_Pattern_ruby_third_parties_google_analytics(node: AST_NodeId)
    374  -Rule("ruby_third_parties_google_analytics", node) :- Rule_Pattern_ruby_third_parties_google_analytics(node).
    375  -.decl Rule_Pattern_ruby_third_parties_datadog(node: AST_NodeId)
    376  -Rule("ruby_third_parties_datadog", node) :- Rule_Pattern_ruby_third_parties_datadog(node).
    377  -Rule_Pattern_ruby_third_parties_datadog(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_tag"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
    378  -Rule_Pattern_ruby_third_parties_datadog(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "trace"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _), AST_ParentChild(node6, 1, node8), AST_NodeType(node8, _).
    379  -.decl Rule_Pattern_google_dataflow_templates_service_client_init(node: AST_NodeId)
    380  -Rule("google_dataflow_templates_service_client_init", node) :- Rule_Pattern_google_dataflow_templates_service_client_init(node).
    381  -Rule_Pattern_google_dataflow_templates_service_client_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "templates_service").
    382  -.decl Rule_Pattern_ruby_third_parties_elasticsearch(node: AST_NodeId)
    383  -Rule("ruby_third_parties_elasticsearch", node) :- Rule_Pattern_ruby_third_parties_elasticsearch(node).
    384  -Rule_Pattern_ruby_third_parties_elasticsearch(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":body"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "body")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
    385  -Rule_Pattern_ruby_third_parties_elasticsearch(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "hash"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, "pair"), AST_NodeField(node6, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":body"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "body")), AST_NodeField(node6, node7, "value"), AST_NodeType(node7, _).
    386  -.decl Rule_Pattern_ruby_lang_path_using_user_input(node: AST_NodeId)
    387  -Rule("ruby_lang_path_using_user_input", node) :- Rule_Pattern_ruby_lang_path_using_user_input(node).
    388  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Dir"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
    389  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    390  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    391  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Kernel"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    392  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "open"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    393  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "PStore"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    394  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Gem"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Util"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    395  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    396  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "+"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
    397  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "/"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
    398  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "cd"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    399  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    400  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "default_system_path"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
    401  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    402  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    403  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, _), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _), AST_ParentChild(node1, 1, node4), AST_NodeType(node4, _).
    404  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "transact"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    405  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    406  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "hash"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
    407  -Rule_Pattern_ruby_lang_path_using_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "send_file"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    408  -.decl Rule_Pattern_blowfish_init(node: AST_NodeId)
    409  -Rule("blowfish_init", node) :- Rule_Pattern_blowfish_init(node).
    410  -Rule_Pattern_blowfish_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Crypt"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Blowfish"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    411  -.decl Rule_Pattern_ruby_rails_insecure_disabling_of_callback(node: AST_NodeId)
    412  -Rule("ruby_rails_insecure_disabling_of_callback", node) :- Rule_Pattern_ruby_rails_insecure_disabling_of_callback(node).
    413  -Rule_Pattern_ruby_rails_insecure_disabling_of_callback(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
    414  -.decl Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(node: AST_NodeId)
    415  -Rule("ruby_lang_http_url_using_user_input_user_input", node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(node).
    416  -Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    417  -Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    418  -Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    419  -Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    420  -.decl Rule_Pattern_ruby_third_parties_clickhouse_insert_rows(node: AST_NodeId)
    421  -Rule("ruby_third_parties_clickhouse_insert_rows", node) :- Rule_Pattern_ruby_third_parties_clickhouse_insert_rows(node).
    422  -.decl Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(node: AST_NodeId)
    423  -Rule("ruby_lang_ftp_using_user_input_user_input", node) :- Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(node).
    424  -Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    425  -Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    426  -Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    427  -Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    428  -.decl Rule_Pattern_ruby_lang_weak_encryption_with_data_rc4_init(node: AST_NodeId)
    429  -Rule("ruby_lang_weak_encryption_with_data_rc4_init", node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data_rc4_init(node).
    430  -Rule_Pattern_ruby_lang_weak_encryption_with_data_rc4_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "RC4"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
    431  -.decl Rule_Pattern_ruby_lang_path_using_user_input_shell(node: AST_NodeId)
    432  -Rule("ruby_lang_path_using_user_input_shell", node) :- Rule_Pattern_ruby_lang_path_using_user_input_shell(node).
    433  -Rule_Pattern_ruby_lang_path_using_user_input_shell(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
    434  -.decl Rule_Pattern_ruby_rails_http_verb_confusion(node: AST_NodeId)
    435  -Rule("ruby_rails_http_verb_confusion", node) :- Rule_Pattern_ruby_rails_http_verb_confusion(node).
    436  -Rule_Pattern_ruby_rails_http_verb_confusion(node1) :- AST_NodeType(node1, "if"), !AST_NodeField(node1, _, "consequence"), AST_NodeField(node1, node2, "condition"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "request"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "get?"), AST_NodeField(node1, node5, "alternative"), AST_NodeType(node5, "else").
    437  -Rule_Pattern_ruby_rails_http_verb_confusion(node1) :- AST_NodeType(node1, "unless"), !AST_NodeField(node1, _, "consequence"), !AST_NodeField(node1, _, "alternative"), AST_NodeField(node1, node2, "condition"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "request"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "get?").
    438  -Rule_Pattern_ruby_rails_http_verb_confusion(node1) :- AST_NodeType(node1, "unless_modifier"), AST_NodeField(node1, node2, "body"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "condition"), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), (!AST_NodeField(node3, _, "arguments"); AST_NodeField(node3, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node3, node4, "receiver"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "request"), AST_NodeField(node3, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "get?").
    439  -.decl Rule_Pattern_ruby_lang_ssl_verification(node: AST_NodeId)
    440  -Rule("ruby_lang_ssl_verification", node) :- Rule_Pattern_ruby_lang_ssl_verification(node).
    441  -.decl Rule_Pattern_ruby_third_parties_bigquery_client(node: AST_NodeId)
    442  -Rule("ruby_third_parties_bigquery_client", node) :- Rule_Pattern_ruby_third_parties_bigquery_client(node).
    443  -Rule_Pattern_ruby_third_parties_bigquery_client(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Bigquery"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    444  -Rule_Pattern_ruby_third_parties_bigquery_client(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Bigquery"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
    445  -.decl Rule_Pattern_ruby_lang_exec_using_user_input_shell(node: AST_NodeId)
    446  -Rule("ruby_lang_exec_using_user_input_shell", node) :- Rule_Pattern_ruby_lang_exec_using_user_input_shell(node).
    447  -Rule_Pattern_ruby_lang_exec_using_user_input_shell(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
    448  -.decl Rule_Pattern_ruby_third_parties_bigquery_table(node: AST_NodeId)
    449  -Rule("ruby_third_parties_bigquery_table", node) :- Rule_Pattern_ruby_third_parties_bigquery_table(node).
    450  -Rule_Pattern_ruby_third_parties_bigquery_table(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "table").
    451  -Rule_Pattern_ruby_third_parties_bigquery_table(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "create_table").
    452  -.decl Rule_Pattern_ruby_rails_insecure_communication(node: AST_NodeId)
    453  -Rule("ruby_rails_insecure_communication", node) :- Rule_Pattern_ruby_rails_insecure_communication(node).
    454  -.decl Rule_Pattern_google_dataflow_snapshots_client_init(node: AST_NodeId)
    455  -Rule("google_dataflow_snapshots_client_init", node) :- Rule_Pattern_google_dataflow_snapshots_client_init(node).
    456  -Rule_Pattern_google_dataflow_snapshots_client_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "snapshots").
    457  -.decl Rule_Pattern_ruby_lang_deserialization_of_user_input(node: AST_NodeId)
    458  -Rule("ruby_lang_deserialization_of_user_input", node) :- Rule_Pattern_ruby_lang_deserialization_of_user_input(node).
    459  -Rule_Pattern_ruby_lang_deserialization_of_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "load"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    460  -Rule_Pattern_ruby_lang_deserialization_of_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Marshal"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "restore"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    461  -Rule_Pattern_ruby_lang_deserialization_of_user_input(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Oj"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "object_load"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    462  -.decl Rule_Pattern_ruby_rails_password_length(node: AST_NodeId)
    463  -Rule("ruby_rails_password_length", node) :- Rule_Pattern_ruby_rails_password_length(node).
    464  -.decl Rule_Pattern_ruby_third_parties_honeybadger(node: AST_NodeId)
    465  -Rule("ruby_third_parties_honeybadger", node) :- Rule_Pattern_ruby_third_parties_honeybadger(node).
    466  -Rule_Pattern_ruby_third_parties_honeybadger(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "notify"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    467  -Rule_Pattern_ruby_third_parties_honeybadger(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    468  -Rule_Pattern_ruby_third_parties_honeybadger(node1) :- AST_NodeType(node1, "method"), !AST_NodeField(node1, _, "parameters"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "to_honeybadger_context"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
    469  -Rule_Pattern_ruby_third_parties_honeybadger(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "add_breadcrumb"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    470  -.decl Rule_Pattern_ruby_rails_render_using_user_input_sanitized(node: AST_NodeId)
    471  -Rule("ruby_rails_render_using_user_input_sanitized", node) :- Rule_Pattern_ruby_rails_render_using_user_input_sanitized(node).
    472  -Rule_Pattern_ruby_rails_render_using_user_input_sanitized(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
    473  -.decl Rule_Pattern_ruby_lang_http_url_using_user_input_url_hash(node: AST_NodeId)
    474  -Rule("ruby_lang_http_url_using_user_input_url_hash", node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_url_hash(node).
    475  -Rule_Pattern_ruby_lang_http_url_using_user_input_url_hash(node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":url"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "url")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
    476  -.decl Rule_Pattern_ruby_third_parties_scout_apm(node: AST_NodeId)
    477  -Rule("ruby_third_parties_scout_apm", node) :- Rule_Pattern_ruby_third_parties_scout_apm(node).
    478  -Rule_Pattern_ruby_third_parties_scout_apm(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "ScoutApm"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Context"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_user"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    479  -Rule_Pattern_ruby_third_parties_scout_apm(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "ScoutApm"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Context"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
    480  -.decl Rule_Pattern_ruby_lang_http_insecure_curb(node: AST_NodeId)
    481  -Rule("ruby_lang_http_insecure_curb", node) :- Rule_Pattern_ruby_lang_http_insecure_curb(node).
    482  -Rule_Pattern_ruby_lang_http_insecure_curb(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
    483  -.decl Rule_Pattern_ruby_lang_path_using_user_input_user_input(node: AST_NodeId)
    484  -Rule("ruby_lang_path_using_user_input_user_input", node) :- Rule_Pattern_ruby_lang_path_using_user_input_user_input(node).
    485  -Rule_Pattern_ruby_lang_path_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
    486  -Rule_Pattern_ruby_lang_path_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
    487  -Rule_Pattern_ruby_lang_path_using_user_input_user_input(node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
    488  -Rule_Pattern_ruby_lang_path_using_user_input_user_input(node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
    489  -.decl Rule_Pattern_google_dataflow_client_init(node: AST_NodeId)
    490  -Rule("google_dataflow_client_init", node) :- Rule_Pattern_google_dataflow_client_init(node).
    491  -Rule_Pattern_google_dataflow_client_init(node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, _).
     1 +.decl Rule_Pattern_ruby_lang_regex_using_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     2 +Rule("ruby_lang_regex_using_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_regex_using_user_input_user_input(patternIndex, node).
     3 +Rule_Pattern_ruby_lang_regex_using_user_input_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     4 +Rule_Pattern_ruby_lang_regex_using_user_input_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     5 +Rule_Pattern_ruby_lang_regex_using_user_input_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     6 +Rule_Pattern_ruby_lang_regex_using_user_input_user_input(3, node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     7 +.decl Rule_Pattern_ruby_third_parties_bigquery_insert_async(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     8 +Rule("ruby_third_parties_bigquery_insert_async", patternIndex, node) :- Rule_Pattern_ruby_third_parties_bigquery_insert_async(patternIndex, node).
     9 +Rule_Pattern_ruby_third_parties_bigquery_insert_async(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
     10 +Rule_Pattern_ruby_third_parties_bigquery_insert_async(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
     11 +Rule_Pattern_ruby_third_parties_bigquery_insert_async(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert_async").
     12 +.decl Rule_Pattern_ruby_third_parties_google_analytics(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     13 +Rule("ruby_third_parties_google_analytics", patternIndex, node) :- Rule_Pattern_ruby_third_parties_google_analytics(patternIndex, node).
     14 +.decl Rule_Pattern_ruby_lang_weak_encryption_with_data(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     15 +Rule("ruby_lang_weak_encryption_with_data", patternIndex, node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data(patternIndex, node).
     16 +Rule_Pattern_ruby_lang_weak_encryption_with_data(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "SHA1"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexidigest"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     17 +Rule_Pattern_ruby_lang_weak_encryption_with_data(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "MD5"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexdigest"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     18 +Rule_Pattern_ruby_lang_weak_encryption_with_data(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     19 +Rule_Pattern_ruby_lang_weak_encryption_with_data(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     20 +Rule_Pattern_ruby_lang_weak_encryption_with_data(4, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     21 +Rule_Pattern_ruby_lang_weak_encryption_with_data(5, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     22 +Rule_Pattern_ruby_lang_weak_encryption_with_data(6, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     23 +Rule_Pattern_ruby_lang_weak_encryption_with_data(7, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     24 +Rule_Pattern_ruby_lang_weak_encryption_with_data(8, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     25 +.decl Rule_Pattern_ruby_third_parties_bigquery(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     26 +Rule("ruby_third_parties_bigquery", patternIndex, node) :- Rule_Pattern_ruby_third_parties_bigquery(patternIndex, node).
     27 +Rule_Pattern_ruby_third_parties_bigquery(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "insert"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     28 +.decl Rule_Pattern_ruby_third_parties_bugsnag(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     29 +Rule("ruby_third_parties_bugsnag", patternIndex, node) :- Rule_Pattern_ruby_third_parties_bugsnag(patternIndex, node).
     30 +Rule_Pattern_ruby_third_parties_bugsnag(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Bugsnag"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "leave_breadcrumb"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     31 +Rule_Pattern_ruby_third_parties_bugsnag(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Bugsnag"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "notify"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     32 +.decl Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     33 +Rule("ruby_lang_ftp_using_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(patternIndex, node).
     34 +Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     35 +Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     36 +Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     37 +Rule_Pattern_ruby_lang_ftp_using_user_input_user_input(3, node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     38 +.decl Rule_Pattern_ruby_lang_weak_encryption(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     39 +Rule("ruby_lang_weak_encryption", patternIndex, node) :- Rule_Pattern_ruby_lang_weak_encryption(patternIndex, node).
     40 +Rule_Pattern_ruby_lang_weak_encryption(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "SHA1"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexidigest").
     41 +Rule_Pattern_ruby_lang_weak_encryption(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Digest"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "MD5"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "hexdigest").
     42 +Rule_Pattern_ruby_lang_weak_encryption(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     43 +Rule_Pattern_ruby_lang_weak_encryption(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     44 +Rule_Pattern_ruby_lang_weak_encryption(4, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     45 +Rule_Pattern_ruby_lang_weak_encryption(5, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     46 +Rule_Pattern_ruby_lang_weak_encryption(6, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     47 +Rule_Pattern_ruby_lang_weak_encryption(7, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     48 +.decl Rule_Pattern_ruby_third_parties_elasticsearch(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     49 +Rule("ruby_third_parties_elasticsearch", patternIndex, node) :- Rule_Pattern_ruby_third_parties_elasticsearch(patternIndex, node).
     50 +Rule_Pattern_ruby_third_parties_elasticsearch(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":body"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "body")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
     51 +Rule_Pattern_ruby_third_parties_elasticsearch(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "hash"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, "pair"), AST_NodeField(node6, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":body"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "body")), AST_NodeField(node6, node7, "value"), AST_NodeType(node7, _).
     52 +.decl Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_rsa_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     53 +Rule("ruby_lang_weak_encryption_with_data_openssl_rsa_init", patternIndex, node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_rsa_init(patternIndex, node).
     54 +Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_rsa_init(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "RSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
     55 +.decl Rule_Pattern_ruby_lang_http_url_using_user_input_excon(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     56 +Rule("ruby_lang_http_url_using_user_input_excon", patternIndex, node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_excon(patternIndex, node).
     57 +Rule_Pattern_ruby_lang_http_url_using_user_input_excon(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     58 +Rule_Pattern_ruby_lang_http_url_using_user_input_excon(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Excon"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Connection"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     59 +.decl Rule_Pattern_ruby_lang_hardcoded_secret(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     60 +Rule("ruby_lang_hardcoded_secret", patternIndex, node) :- Rule_Pattern_ruby_lang_hardcoded_secret(patternIndex, node).
     61 +Rule_Pattern_ruby_lang_hardcoded_secret(0, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "right"), AST_NodeType(node3, _).
     62 +Rule_Pattern_ruby_lang_hardcoded_secret(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     63 +Rule_Pattern_ruby_lang_hardcoded_secret(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, node5, "key"), AST_NodeType(node5, _), AST_NodeField(node4, node6, "value"), AST_NodeType(node6, _).
     64 +Rule_Pattern_ruby_lang_hardcoded_secret(3, node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar0"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar0")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
     65 +Rule_Pattern_ruby_lang_hardcoded_secret(4, node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, node3, "key"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "value"), AST_NodeType(node4, _).
     66 +.decl Rule_Pattern_ruby_rails_default_encryption(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     67 +Rule("ruby_rails_default_encryption", patternIndex, node) :- Rule_Pattern_ruby_rails_default_encryption(patternIndex, node).
     68 +Rule_Pattern_ruby_rails_default_encryption(0, node1) :- AST_NodeType(node1, "class"), !AST_NodeField(node1, _, "superclass"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "receiver"), !AST_NodeField(node3, _, "block"), AST_NodeField(node3, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "encrypts"), AST_NodeField(node3, node5, "arguments"), AST_NodeType(node5, "argument_list"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     69 +.decl Rule_Pattern_ruby_third_parties_honeybadger(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     70 +Rule("ruby_third_parties_honeybadger", patternIndex, node) :- Rule_Pattern_ruby_third_parties_honeybadger(patternIndex, node).
     71 +Rule_Pattern_ruby_third_parties_honeybadger(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "notify"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     72 +Rule_Pattern_ruby_third_parties_honeybadger(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     73 +Rule_Pattern_ruby_third_parties_honeybadger(2, node1) :- AST_NodeType(node1, "method"), !AST_NodeField(node1, _, "parameters"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "to_honeybadger_context"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
     74 +Rule_Pattern_ruby_third_parties_honeybadger(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Honeybadger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "add_breadcrumb"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     75 +.decl Rule_Pattern_google_dataflow_templates_service_client_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     76 +Rule("google_dataflow_templates_service_client_init", patternIndex, node) :- Rule_Pattern_google_dataflow_templates_service_client_init(patternIndex, node).
     77 +Rule_Pattern_google_dataflow_templates_service_client_init(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "templates_service").
     78 +.decl Rule_Pattern_ruby_rails_redirect_to_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     79 +Rule("ruby_rails_redirect_to_user_input", patternIndex, node) :- Rule_Pattern_ruby_rails_redirect_to_user_input(patternIndex, node).
     80 +Rule_Pattern_ruby_rails_redirect_to_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     81 +Rule_Pattern_ruby_rails_redirect_to_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     82 +Rule_Pattern_ruby_rails_redirect_to_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     83 +.decl Rule_Pattern_ruby_rails_render_using_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     84 +Rule("ruby_rails_render_using_user_input", patternIndex, node) :- Rule_Pattern_ruby_rails_render_using_user_input(patternIndex, node).
     85 +Rule_Pattern_ruby_rails_render_using_user_input(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "render"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":inline"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "inline")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     86 +Rule_Pattern_ruby_rails_render_using_user_input(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "render"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":html"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "html")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     87 +.decl Rule_Pattern_google_dataflow_client_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     88 +Rule("google_dataflow_client_init", patternIndex, node) :- Rule_Pattern_google_dataflow_client_init(patternIndex, node).
     89 +Rule_Pattern_google_dataflow_client_init(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, _).
     90 +.decl Rule_Pattern_google_dataflow_value_classes(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     91 +Rule("google_dataflow_value_classes", patternIndex, node) :- Rule_Pattern_google_dataflow_value_classes(patternIndex, node).
     92 +.decl Rule_Pattern_ruby_third_parties_bigquery_table(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     93 +Rule("ruby_third_parties_bigquery_table", patternIndex, node) :- Rule_Pattern_ruby_third_parties_bigquery_table(patternIndex, node).
     94 +Rule_Pattern_ruby_third_parties_bigquery_table(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "table").
     95 +Rule_Pattern_ruby_third_parties_bigquery_table(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "create_table").
     96 +.decl Rule_Pattern_ruby_third_parties_sentry(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     97 +Rule("ruby_third_parties_sentry", patternIndex, node) :- Rule_Pattern_ruby_third_parties_sentry(patternIndex, node).
     98 +Rule_Pattern_ruby_third_parties_sentry(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Sentry"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Breadcrumb"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     99 +Rule_Pattern_ruby_third_parties_sentry(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "capture_message"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     100 +Rule_Pattern_ruby_third_parties_sentry(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     101 +Rule_Pattern_ruby_third_parties_sentry(8, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_extras"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     102 +Rule_Pattern_ruby_third_parties_sentry(13, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_tags"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     103 +Rule_Pattern_ruby_third_parties_sentry(16, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Sentry"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_user"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     104 +.decl Rule_Pattern_ruby_third_parties_clickhouse_insert_rows(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     105 +Rule("ruby_third_parties_clickhouse_insert_rows", patternIndex, node) :- Rule_Pattern_ruby_third_parties_clickhouse_insert_rows(patternIndex, node).
     106 +.decl Rule_Pattern_ruby_lang_exec_using_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     107 +Rule("ruby_lang_exec_using_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_exec_using_user_input_user_input(patternIndex, node).
     108 +Rule_Pattern_ruby_lang_exec_using_user_input_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     109 +Rule_Pattern_ruby_lang_exec_using_user_input_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     110 +Rule_Pattern_ruby_lang_exec_using_user_input_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     111 +Rule_Pattern_ruby_lang_exec_using_user_input_user_input(3, node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     112 +.decl Rule_Pattern_ruby_lang_exception(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     113 +Rule("ruby_lang_exception", patternIndex, node) :- Rule_Pattern_ruby_lang_exception(patternIndex, node).
     114 +Rule_Pattern_ruby_lang_exception(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "raise"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     115 +.decl Rule_Pattern_ruby_third_parties_rollbar(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     116 +Rule("ruby_third_parties_rollbar", patternIndex, node) :- Rule_Pattern_ruby_third_parties_rollbar(patternIndex, node).
     117 +Rule_Pattern_ruby_third_parties_rollbar(0, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "rollbar_context"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     118 +Rule_Pattern_ruby_third_parties_rollbar(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     119 +Rule_Pattern_ruby_third_parties_rollbar(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "log"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     120 +Rule_Pattern_ruby_third_parties_rollbar(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scope"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     121 +Rule_Pattern_ruby_third_parties_rollbar(4, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scoped"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     122 +.decl Rule_Pattern_ruby_rails_insecure_communication(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     123 +Rule("ruby_rails_insecure_communication", patternIndex, node) :- Rule_Pattern_ruby_rails_insecure_communication(patternIndex, node).
     124 +.decl Rule_Pattern_ruby_lang_deserialization_of_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     125 +Rule("ruby_lang_deserialization_of_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_deserialization_of_user_input_user_input(patternIndex, node).
     126 +Rule_Pattern_ruby_lang_deserialization_of_user_input_user_input(0, node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     127 +Rule_Pattern_ruby_lang_deserialization_of_user_input_user_input(1, node1) :- AST_NodeType(node1, _).
     128 +.decl Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     129 +Rule("ruby_lang_http_url_using_user_input_net_http", patternIndex, node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(patternIndex, node).
     130 +Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(0, node1) :- AST_NodeType(node1, _).
     131 +Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(1, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "start"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     132 +Rule_Pattern_ruby_lang_http_url_using_user_input_net_http(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "start").
     133 +.decl Rule_Pattern_ruby_lang_http_post_insecure_with_data(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     134 +Rule("ruby_lang_http_post_insecure_with_data", patternIndex, node) :- Rule_Pattern_ruby_lang_http_post_insecure_with_data(patternIndex, node).
     135 +Rule_Pattern_ruby_lang_http_post_insecure_with_data(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "post_form"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _), AST_ParentChild(node6, 1, node8), AST_NodeType(node8, _).
     136 +Rule_Pattern_ruby_lang_http_post_insecure_with_data(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "post"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     137 +.decl Rule_Pattern_ruby_lang_deserialization_of_user_input_sanitized_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     138 +Rule("ruby_lang_deserialization_of_user_input_sanitized_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_deserialization_of_user_input_sanitized_user_input(patternIndex, node).
     139 +Rule_Pattern_ruby_lang_deserialization_of_user_input_sanitized_user_input(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "JSON"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "parse").
     140 +Rule_Pattern_ruby_lang_deserialization_of_user_input_sanitized_user_input(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Nokogiri"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "XML").
     141 +.decl Rule_Pattern_open_telemetry_current_span(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     142 +Rule("open_telemetry_current_span", patternIndex, node) :- Rule_Pattern_open_telemetry_current_span(patternIndex, node).
     143 +Rule_Pattern_open_telemetry_current_span(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "OpenTelemetry"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Trace"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "current_span").
     144 +Rule_Pattern_open_telemetry_current_span(1, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "in_span"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     145 +.decl Rule_Pattern_ruby_third_parties_algolia(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     146 +Rule("ruby_third_parties_algolia", patternIndex, node) :- Rule_Pattern_ruby_third_parties_algolia(patternIndex, node).
     147 +Rule_Pattern_ruby_third_parties_algolia(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     148 +.decl Rule_Pattern_ruby_rails_render_using_user_input_sanitized(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     149 +Rule("ruby_rails_render_using_user_input_sanitized", patternIndex, node) :- Rule_Pattern_ruby_rails_render_using_user_input_sanitized(patternIndex, node).
     150 +Rule_Pattern_ruby_rails_render_using_user_input_sanitized(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     151 +.decl Rule_Pattern_ruby_lang_eval_using_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     152 +Rule("ruby_lang_eval_using_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_eval_using_user_input(patternIndex, node).
     153 +Rule_Pattern_ruby_lang_eval_using_user_input(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "RubyVM"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "InstructionSequence"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "compile"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     154 +Rule_Pattern_ruby_lang_eval_using_user_input(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     155 +Rule_Pattern_ruby_lang_eval_using_user_input(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     156 +.decl Rule_Pattern_ruby_third_parties_rollbar_scope(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     157 +Rule("ruby_third_parties_rollbar_scope", patternIndex, node) :- Rule_Pattern_ruby_third_parties_rollbar_scope(patternIndex, node).
     158 +Rule_Pattern_ruby_third_parties_rollbar_scope(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rollbar"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "scope").
     159 +.decl Rule_Pattern_ruby_lang_http_url_using_user_input_path_hash(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     160 +Rule("ruby_lang_http_url_using_user_input_path_hash", patternIndex, node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_path_hash(patternIndex, node).
     161 +Rule_Pattern_ruby_lang_http_url_using_user_input_path_hash(0, node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":path"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "path")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
     162 +.decl Rule_Pattern_ruby_rails_render_using_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     163 +Rule("ruby_rails_render_using_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_rails_render_using_user_input_user_input(patternIndex, node).
     164 +Rule_Pattern_ruby_rails_render_using_user_input_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     165 +Rule_Pattern_ruby_rails_render_using_user_input_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     166 +Rule_Pattern_ruby_rails_render_using_user_input_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     167 +.decl Rule_Pattern_ruby_rails_permissive_regex_validation(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     168 +Rule("ruby_rails_permissive_regex_validation", patternIndex, node) :- Rule_Pattern_ruby_rails_permissive_regex_validation(patternIndex, node).
     169 +Rule_Pattern_ruby_rails_permissive_regex_validation(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "validates"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":format"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "format")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, "hash"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, "pair"), AST_NodeField(node6, tmp1, "key"), (AST_NodeType(tmp1, "simple_symbol"), AST_NodeContent(tmp1, ":with"); AST_NodeType(tmp1, "hash_key_symbol"), AST_NodeContent(tmp1, "with")), AST_NodeField(node6, node7, "value"), AST_NodeType(node7, _).
     170 +Rule_Pattern_ruby_rails_permissive_regex_validation(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "validates_format_of"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":with"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "with")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     171 +.decl Rule_Pattern_openssl_dsa_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     172 +Rule("openssl_dsa_init", patternIndex, node) :- Rule_Pattern_openssl_dsa_init(patternIndex, node).
     173 +Rule_Pattern_openssl_dsa_init(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "DSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
     174 +.decl Rule_Pattern_ruby_third_parties_airbrake(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     175 +Rule("ruby_third_parties_airbrake", patternIndex, node) :- Rule_Pattern_ruby_third_parties_airbrake(patternIndex, node).
     176 +Rule_Pattern_ruby_third_parties_airbrake(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Airbrake"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     177 +Rule_Pattern_ruby_third_parties_airbrake(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Airbrake"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "merge_context"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     178 +Rule_Pattern_ruby_third_parties_airbrake(3, node1) :- AST_NodeType(node1, "method"), !AST_NodeField(node1, _, "parameters"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "to_airbrake"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
     179 +.decl Rule_Pattern_rc4_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     180 +Rule("rc4_init", patternIndex, node) :- Rule_Pattern_rc4_init(patternIndex, node).
     181 +Rule_Pattern_rc4_init(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "RC4"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     182 +.decl Rule_Pattern_ruby_lang_exec_using_user_input_shell(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     183 +Rule("ruby_lang_exec_using_user_input_shell", patternIndex, node) :- Rule_Pattern_ruby_lang_exec_using_user_input_shell(patternIndex, node).
     184 +Rule_Pattern_ruby_lang_exec_using_user_input_shell(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     185 +.decl Rule_Pattern_segment_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     186 +Rule("segment_init", patternIndex, node) :- Rule_Pattern_segment_init(patternIndex, node).
     187 +Rule_Pattern_segment_init(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Segment"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Analytics"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     188 +.decl Rule_Pattern_ruby_third_parties_clickhouse(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     189 +Rule("ruby_third_parties_clickhouse", patternIndex, node) :- Rule_Pattern_ruby_third_parties_clickhouse(patternIndex, node).
     190 +Rule_Pattern_ruby_third_parties_clickhouse(0, node1) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "<<"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
     191 +.decl Rule_Pattern_ruby_third_parties_google_dataflow(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     192 +Rule("ruby_third_parties_google_dataflow", patternIndex, node) :- Rule_Pattern_ruby_third_parties_google_dataflow(patternIndex, node).
     193 +Rule_Pattern_ruby_third_parties_google_dataflow(0, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "message_text"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     194 +Rule_Pattern_ruby_third_parties_google_dataflow(1, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "description"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     195 +Rule_Pattern_ruby_third_parties_google_dataflow(2, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "value"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     196 +Rule_Pattern_ruby_third_parties_google_dataflow(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "create_job_from_template"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     197 +Rule_Pattern_ruby_third_parties_google_dataflow(4, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     198 +Rule_Pattern_ruby_third_parties_google_dataflow(5, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "metadata"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     199 +.decl Rule_Pattern_ruby_lang_file_generation_file(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     200 +Rule("ruby_lang_file_generation_file", patternIndex, node) :- Rule_Pattern_ruby_lang_file_generation_file(patternIndex, node).
     201 +Rule_Pattern_ruby_lang_file_generation_file(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "generate").
     202 +Rule_Pattern_ruby_lang_file_generation_file(1, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "generate"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     203 +Rule_Pattern_ruby_lang_file_generation_file(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
     204 +Rule_Pattern_ruby_lang_file_generation_file(3, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "CSV"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     205 +Rule_Pattern_ruby_lang_file_generation_file(4, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "File"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
     206 +Rule_Pattern_ruby_lang_file_generation_file(5, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "File"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     207 +Rule_Pattern_ruby_lang_file_generation_file(6, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open").
     208 +Rule_Pattern_ruby_lang_file_generation_file(7, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     209 +.decl Rule_Pattern_ruby_rails_http_verb_confusion(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     210 +Rule("ruby_rails_http_verb_confusion", patternIndex, node) :- Rule_Pattern_ruby_rails_http_verb_confusion(patternIndex, node).
     211 +Rule_Pattern_ruby_rails_http_verb_confusion(0, node1) :- AST_NodeType(node1, "if"), !AST_NodeField(node1, _, "consequence"), AST_NodeField(node1, node2, "condition"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "request"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "get?"), AST_NodeField(node1, node5, "alternative"), AST_NodeType(node5, "else").
     212 +Rule_Pattern_ruby_rails_http_verb_confusion(1, node1) :- AST_NodeType(node1, "unless"), !AST_NodeField(node1, _, "consequence"), !AST_NodeField(node1, _, "alternative"), AST_NodeField(node1, node2, "condition"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "request"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "get?").
     213 +Rule_Pattern_ruby_rails_http_verb_confusion(2, node1) :- AST_NodeType(node1, "unless_modifier"), AST_NodeField(node1, node2, "body"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "condition"), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), (!AST_NodeField(node3, _, "arguments"); AST_NodeField(node3, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node3, node4, "receiver"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "request"), AST_NodeField(node3, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "get?").
     214 +.decl Rule_Pattern_ruby_lang_eval_using_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     215 +Rule("ruby_lang_eval_using_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_eval_using_user_input_user_input(patternIndex, node).
     216 +Rule_Pattern_ruby_lang_eval_using_user_input_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     217 +Rule_Pattern_ruby_lang_eval_using_user_input_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     218 +Rule_Pattern_ruby_lang_eval_using_user_input_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     219 +Rule_Pattern_ruby_lang_eval_using_user_input_user_input(3, node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     220 +.decl Rule_Pattern_ruby_lang_exec_using_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     221 +Rule("ruby_lang_exec_using_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_exec_using_user_input(patternIndex, node).
     222 +Rule_Pattern_ruby_lang_exec_using_user_input(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Kernel"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     223 +Rule_Pattern_ruby_lang_exec_using_user_input(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     224 +Rule_Pattern_ruby_lang_exec_using_user_input(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "popen"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     225 +Rule_Pattern_ruby_lang_exec_using_user_input(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Process"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     226 +Rule_Pattern_ruby_lang_exec_using_user_input(4, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Open3"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     227 +Rule_Pattern_ruby_lang_exec_using_user_input(5, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Gem"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Util"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     228 +Rule_Pattern_ruby_lang_exec_using_user_input(6, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "PTY"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "spawn"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     229 +Rule_Pattern_ruby_lang_exec_using_user_input(7, node1) :- AST_NodeType(node1, "subshell"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, _).
     230 +Rule_Pattern_ruby_lang_exec_using_user_input(8, node1) :- AST_NodeType(node1, "subshell"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "string_content"), AST_NodeContent(node2, "{CurioVar0").
     231 +Rule_Pattern_ruby_lang_exec_using_user_input(9, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     232 +Rule_Pattern_ruby_lang_exec_using_user_input(10, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     233 +Rule_Pattern_ruby_lang_exec_using_user_input(11, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "system"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     234 +.decl Rule_Pattern_ruby_lang_cookies(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     235 +Rule("ruby_lang_cookies", patternIndex, node) :- Rule_Pattern_ruby_lang_cookies(patternIndex, node).
     236 +Rule_Pattern_ruby_lang_cookies(0, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "cookies"), AST_ParentChild(node2, 0, node4), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     237 +Rule_Pattern_ruby_lang_cookies(1, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "call"), !AST_NodeField(node3, _, "block"), (!AST_NodeField(node3, _, "arguments"); AST_NodeField(node3, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node3, node4, "receiver"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "cookies"), AST_NodeField(node3, node5, "method"), AST_NodeType(node5, _), AST_ParentChild(node2, 0, node6), AST_NodeType(node6, _), AST_NodeField(node1, node7, "right"), AST_NodeType(node7, _).
     238 +.decl Rule_Pattern_blowfish_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     239 +Rule("blowfish_init", patternIndex, node) :- Rule_Pattern_blowfish_init(patternIndex, node).
     240 +Rule_Pattern_blowfish_init(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Crypt"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Blowfish"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     241 +.decl Rule_Pattern_ruby_third_parties_open_telemetry(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     242 +Rule("ruby_third_parties_open_telemetry", patternIndex, node) :- Rule_Pattern_ruby_third_parties_open_telemetry(patternIndex, node).
     243 +Rule_Pattern_ruby_third_parties_open_telemetry(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     244 +Rule_Pattern_ruby_third_parties_open_telemetry(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "in_span"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     245 +.decl Rule_Pattern_google_dataflow_snapshots_client_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     246 +Rule("google_dataflow_snapshots_client_init", patternIndex, node) :- Rule_Pattern_google_dataflow_snapshots_client_init(patternIndex, node).
     247 +Rule_Pattern_google_dataflow_snapshots_client_init(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Dataflow"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "snapshots").
     248 +.decl Rule_Pattern_ruby_rails_session(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     249 +Rule("ruby_rails_session", patternIndex, node) :- Rule_Pattern_ruby_rails_session(patternIndex, node).
     250 +Rule_Pattern_ruby_rails_session(0, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "element_reference"), AST_NodeField(node2, node3, "object"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "session"), AST_ParentChild(node2, 0, node4), AST_NodeType(node4, _), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     251 +.decl Rule_Pattern_ruby_rails_insecure_http_password(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     252 +Rule("ruby_rails_insecure_http_password", patternIndex, node) :- Rule_Pattern_ruby_rails_insecure_http_password(patternIndex, node).
     253 +.decl Rule_Pattern_ruby_lang_http_get_params(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     254 +Rule("ruby_lang_http_get_params", patternIndex, node) :- Rule_Pattern_ruby_lang_http_get_params(patternIndex, node).
     255 +Rule_Pattern_ruby_lang_http_get_params(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "encode_www_form"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     256 +Rule_Pattern_ruby_lang_http_get_params(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     257 +Rule_Pattern_ruby_lang_http_get_params(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     258 +.decl Rule_Pattern_ruby_lang_path_using_user_input_pathname(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     259 +Rule("ruby_lang_path_using_user_input_pathname", patternIndex, node) :- Rule_Pattern_ruby_lang_path_using_user_input_pathname(patternIndex, node).
     260 +Rule_Pattern_ruby_lang_path_using_user_input_pathname(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Rails"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "root").
     261 +Rule_Pattern_ruby_lang_path_using_user_input_pathname(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Pathname"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     262 +.decl Rule_Pattern_ruby_rails_password_length(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     263 +Rule("ruby_rails_password_length", patternIndex, node) :- Rule_Pattern_ruby_rails_password_length(patternIndex, node).
     264 +.decl Rule_Pattern_ruby_lang_path_using_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     265 +Rule("ruby_lang_path_using_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_path_using_user_input_user_input(patternIndex, node).
     266 +Rule_Pattern_ruby_lang_path_using_user_input_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     267 +Rule_Pattern_ruby_lang_path_using_user_input_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     268 +Rule_Pattern_ruby_lang_path_using_user_input_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     269 +Rule_Pattern_ruby_lang_path_using_user_input_user_input(3, node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     270 +.decl Rule_Pattern_google_dataflow_template_metadata_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     271 +Rule("google_dataflow_template_metadata_init", patternIndex, node) :- Rule_Pattern_google_dataflow_template_metadata_init(patternIndex, node).
     272 +.decl Rule_Pattern_ruby_third_parties_algolia_client(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     273 +Rule("ruby_third_parties_algolia_client", patternIndex, node) :- Rule_Pattern_ruby_third_parties_algolia_client(patternIndex, node).
     274 +Rule_Pattern_ruby_third_parties_algolia_client(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Algolia"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Search"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Client"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "create").
     275 +.decl Rule_Pattern_ruby_third_parties_algolia_index(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     276 +Rule("ruby_third_parties_algolia_index", patternIndex, node) :- Rule_Pattern_ruby_third_parties_algolia_index(patternIndex, node).
     277 +Rule_Pattern_ruby_third_parties_algolia_index(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "init_index").
     278 +.decl Rule_Pattern_ruby_lang_deserialization_of_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     279 +Rule("ruby_lang_deserialization_of_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_deserialization_of_user_input(patternIndex, node).
     280 +Rule_Pattern_ruby_lang_deserialization_of_user_input(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "load"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     281 +Rule_Pattern_ruby_lang_deserialization_of_user_input(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Marshal"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "restore"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     282 +Rule_Pattern_ruby_lang_deserialization_of_user_input(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Oj"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "object_load"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     283 +.decl Rule_Pattern_ruby_lang_weak_encryption_with_data_rc4_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     284 +Rule("ruby_lang_weak_encryption_with_data_rc4_init", patternIndex, node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data_rc4_init(patternIndex, node).
     285 +Rule_Pattern_ruby_lang_weak_encryption_with_data_rc4_init(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "RC4"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     286 +.decl Rule_Pattern_ruby_lang_http_url_using_user_input_net_http_new(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     287 +Rule("ruby_lang_http_url_using_user_input_net_http_new", patternIndex, node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_net_http_new(patternIndex, node).
     288 +Rule_Pattern_ruby_lang_http_url_using_user_input_net_http_new(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     289 +.decl Rule_Pattern_google_dataflow_config(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     290 +Rule("google_dataflow_config", patternIndex, node) :- Rule_Pattern_google_dataflow_config(patternIndex, node).
     291 +Rule_Pattern_google_dataflow_config(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "configure").
     292 +Rule_Pattern_google_dataflow_config(1, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "configure"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "block"), AST_NodeField(node4, node5, "parameters"), AST_NodeType(node5, "block_parameters"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     293 +.decl Rule_Pattern_ruby_lang_insecure_ftp(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     294 +Rule("ruby_lang_insecure_ftp", patternIndex, node) :- Rule_Pattern_ruby_lang_insecure_ftp(patternIndex, node).
     295 +Rule_Pattern_ruby_lang_insecure_ftp(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     296 +Rule_Pattern_ruby_lang_insecure_ftp(1, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "do_block"), !AST_NodeField(node6, _, "parameters"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     297 +Rule_Pattern_ruby_lang_insecure_ftp(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open").
     298 +.decl Rule_Pattern_ruby_third_parties_segment(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     299 +Rule("ruby_third_parties_segment", patternIndex, node) :- Rule_Pattern_ruby_third_parties_segment(patternIndex, node).
     300 +Rule_Pattern_ruby_third_parties_segment(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     301 +.decl Rule_Pattern_ruby_lang_path_using_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     302 +Rule("ruby_lang_path_using_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_path_using_user_input(patternIndex, node).
     303 +Rule_Pattern_ruby_lang_path_using_user_input(0, node1) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Dir"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
     304 +Rule_Pattern_ruby_lang_path_using_user_input(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     305 +Rule_Pattern_ruby_lang_path_using_user_input(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "IO"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     306 +Rule_Pattern_ruby_lang_path_using_user_input(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Kernel"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "open"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     307 +Rule_Pattern_ruby_lang_path_using_user_input(4, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "open"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     308 +Rule_Pattern_ruby_lang_path_using_user_input(5, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "PStore"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     309 +Rule_Pattern_ruby_lang_path_using_user_input(6, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Gem"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Util"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     310 +Rule_Pattern_ruby_lang_path_using_user_input(7, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     311 +Rule_Pattern_ruby_lang_path_using_user_input(8, node1) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "+"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
     312 +Rule_Pattern_ruby_lang_path_using_user_input(9, node1) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "/"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
     313 +Rule_Pattern_ruby_lang_path_using_user_input(10, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "cd"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     314 +Rule_Pattern_ruby_lang_path_using_user_input(11, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     315 +Rule_Pattern_ruby_lang_path_using_user_input(12, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "default_system_path"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     316 +Rule_Pattern_ruby_lang_path_using_user_input(13, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     317 +Rule_Pattern_ruby_lang_path_using_user_input(14, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     318 +Rule_Pattern_ruby_lang_path_using_user_input(15, node1) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, _), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _), AST_ParentChild(node1, 1, node4), AST_NodeType(node4, _).
     319 +Rule_Pattern_ruby_lang_path_using_user_input(16, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "transact"), AST_NodeField(node1, node4, "block"), AST_NodeType(node4, "do_block"), !AST_NodeField(node4, _, "parameters"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     320 +Rule_Pattern_ruby_lang_path_using_user_input(17, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     321 +Rule_Pattern_ruby_lang_path_using_user_input(18, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "hash"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
     322 +Rule_Pattern_ruby_lang_path_using_user_input(19, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "send_file"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     323 +.decl Rule_Pattern_openssl_rsa_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     324 +Rule("openssl_rsa_init", patternIndex, node) :- Rule_Pattern_openssl_rsa_init(patternIndex, node).
     325 +.decl Rule_Pattern_ruby_third_parties_elasticsearch_client(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     326 +Rule("ruby_third_parties_elasticsearch_client", patternIndex, node) :- Rule_Pattern_ruby_third_parties_elasticsearch_client(patternIndex, node).
     327 +Rule_Pattern_ruby_third_parties_elasticsearch_client(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Elasticsearch"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Client"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     328 +Rule_Pattern_ruby_third_parties_elasticsearch_client(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Elasticsearch"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Client"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     329 +.decl Rule_Pattern_ruby_third_parties_datadog(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     330 +Rule("ruby_third_parties_datadog", patternIndex, node) :- Rule_Pattern_ruby_third_parties_datadog(patternIndex, node).
     331 +Rule_Pattern_ruby_third_parties_datadog(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "set_tag"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     332 +Rule_Pattern_ruby_third_parties_datadog(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "trace"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _), AST_ParentChild(node6, 1, node8), AST_NodeType(node8, _).
     333 +.decl Rule_Pattern_ruby_lang_jwt(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     334 +Rule("ruby_lang_jwt", patternIndex, node) :- Rule_Pattern_ruby_lang_jwt(patternIndex, node).
     335 +Rule_Pattern_ruby_lang_jwt(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "JWT"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "encode"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     336 +.decl Rule_Pattern_google_dataflow_description_classes(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     337 +Rule("google_dataflow_description_classes", patternIndex, node) :- Rule_Pattern_google_dataflow_description_classes(patternIndex, node).
     338 +Rule_Pattern_google_dataflow_description_classes(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get_snapshot").
     339 +.decl Rule_Pattern_ruby_lang_reflection_using_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     340 +Rule("ruby_lang_reflection_using_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_reflection_using_user_input(patternIndex, node).
     341 +Rule_Pattern_ruby_lang_reflection_using_user_input(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     342 +Rule_Pattern_ruby_lang_reflection_using_user_input(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     343 +Rule_Pattern_ruby_lang_reflection_using_user_input(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     344 +Rule_Pattern_ruby_lang_reflection_using_user_input(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "to_proc").
     345 +Rule_Pattern_ruby_lang_reflection_using_user_input(4, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "block_argument"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     346 +Rule_Pattern_ruby_lang_reflection_using_user_input(5, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "block_argument"), AST_ParentChild(node5, 0, node6), AST_NodeType(node6, _).
     347 +Rule_Pattern_ruby_lang_reflection_using_user_input(6, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _).
     348 +.decl Rule_Pattern_ruby_lang_exec_using_user_input_shell_cmd_proc(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     349 +Rule("ruby_lang_exec_using_user_input_shell_cmd_proc", patternIndex, node) :- Rule_Pattern_ruby_lang_exec_using_user_input_shell_cmd_proc(patternIndex, node).
     350 +Rule_Pattern_ruby_lang_exec_using_user_input_shell_cmd_proc(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "command_processor").
     351 +Rule_Pattern_ruby_lang_exec_using_user_input_shell_cmd_proc(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     352 +.decl Rule_Pattern_ruby_lang_regex_using_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     353 +Rule("ruby_lang_regex_using_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_regex_using_user_input(patternIndex, node).
     354 +Rule_Pattern_ruby_lang_regex_using_user_input(0, node1) :- AST_NodeType(node1, "regex"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "interpolation"), AST_ParentChild(node2, 0, node3), AST_NodeType(node3, _).
     355 +Rule_Pattern_ruby_lang_regex_using_user_input(1, node1) :- AST_NodeType(node1, "regex"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "interpolation"), AST_ParentChild(node2, 0, node3), AST_NodeType(node3, _).
     356 +Rule_Pattern_ruby_lang_regex_using_user_input(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Regexp"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     357 +.decl Rule_Pattern_ruby_lang_file_generation(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     358 +Rule("ruby_lang_file_generation", patternIndex, node) :- Rule_Pattern_ruby_lang_file_generation(patternIndex, node).
     359 +Rule_Pattern_ruby_lang_file_generation(0, node1) :- AST_NodeType(node1, "binary"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "operator"), AST_NodeType(node3, "<<"), AST_NodeField(node1, node4, "right"), AST_NodeType(node4, _).
     360 +Rule_Pattern_ruby_lang_file_generation(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     361 +.decl Rule_Pattern_ruby_lang_http_url_using_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     362 +Rule("ruby_lang_http_url_using_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_http_url_using_user_input(patternIndex, node).
     363 +Rule_Pattern_ruby_lang_http_url_using_user_input(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     364 +Rule_Pattern_ruby_lang_http_url_using_user_input(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     365 +Rule_Pattern_ruby_lang_http_url_using_user_input(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     366 +Rule_Pattern_ruby_lang_http_url_using_user_input(4, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "send_request"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     367 +Rule_Pattern_ruby_lang_http_url_using_user_input(5, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "ipaddr"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     368 +Rule_Pattern_ruby_lang_http_url_using_user_input(6, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     369 +Rule_Pattern_ruby_lang_http_url_using_user_input(7, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Curl"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "http"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     370 +Rule_Pattern_ruby_lang_http_url_using_user_input(8, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Curl"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     371 +Rule_Pattern_ruby_lang_http_url_using_user_input(9, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     372 +Rule_Pattern_ruby_lang_http_url_using_user_input(10, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "url"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     373 +Rule_Pattern_ruby_lang_http_url_using_user_input(11, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Multi"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     374 +Rule_Pattern_ruby_lang_http_url_using_user_input(12, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Multi"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     375 +Rule_Pattern_ruby_lang_http_url_using_user_input(13, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Excon"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Connection"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     376 +Rule_Pattern_ruby_lang_http_url_using_user_input(14, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     377 +Rule_Pattern_ruby_lang_http_url_using_user_input(15, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":path"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "path")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
     378 +Rule_Pattern_ruby_lang_http_url_using_user_input(16, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, "pair"), AST_NodeField(node5, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":path"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "path")), AST_NodeField(node5, node6, "value"), AST_NodeType(node6, _).
     379 +Rule_Pattern_ruby_lang_http_url_using_user_input(17, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "requests"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     380 +Rule_Pattern_ruby_lang_http_url_using_user_input(18, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     381 +Rule_Pattern_ruby_lang_http_url_using_user_input(19, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "post"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     382 +.decl Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_trans_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     383 +Rule("ruby_lang_path_using_user_input_shell_cmd_trans_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_trans_user_input(patternIndex, node).
     384 +Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_trans_user_input(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     385 +.decl Rule_Pattern_ruby_lang_http_insecure_url_hash(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     386 +Rule("ruby_lang_http_insecure_url_hash", patternIndex, node) :- Rule_Pattern_ruby_lang_http_insecure_url_hash(patternIndex, node).
     387 +Rule_Pattern_ruby_lang_http_insecure_url_hash(0, node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":url"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "url")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
     388 +.decl Rule_Pattern_ruby_lang_http_url_using_user_input_curb(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     389 +Rule("ruby_lang_http_url_using_user_input_curb", patternIndex, node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_curb(patternIndex, node).
     390 +Rule_Pattern_ruby_lang_http_url_using_user_input_curb(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     391 +.decl Rule_Pattern_ruby_lang_http_url_using_user_input_url_hash(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     392 +Rule("ruby_lang_http_url_using_user_input_url_hash", patternIndex, node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_url_hash(patternIndex, node).
     393 +Rule_Pattern_ruby_lang_http_url_using_user_input_url_hash(0, node1) :- AST_NodeType(node1, "hash"), AST_ParentChild(node1, 0, node2), AST_NodeType(node2, "pair"), AST_NodeField(node2, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":url"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "url")), AST_NodeField(node2, node3, "value"), AST_NodeType(node3, _).
     394 +.decl Rule_Pattern_ruby_lang_weak_encryption_with_data_blowfish_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     395 +Rule("ruby_lang_weak_encryption_with_data_blowfish_init", patternIndex, node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data_blowfish_init(patternIndex, node).
     396 +Rule_Pattern_ruby_lang_weak_encryption_with_data_blowfish_init(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Crypt"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Blowfish"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     397 +.decl Rule_Pattern_ruby_lang_http_insecure(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     398 +Rule("ruby_lang_http_insecure", patternIndex, node) :- Rule_Pattern_ruby_lang_http_insecure(patternIndex, node).
     399 +Rule_Pattern_ruby_lang_http_insecure(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     400 +Rule_Pattern_ruby_lang_http_insecure(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "HTTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     401 +Rule_Pattern_ruby_lang_http_insecure(3, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "URI"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     402 +Rule_Pattern_ruby_lang_http_insecure(4, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Curl"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "http"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _), AST_ParentChild(node4, 1, node6), AST_NodeType(node6, _).
     403 +Rule_Pattern_ruby_lang_http_insecure(5, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Curl"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     404 +Rule_Pattern_ruby_lang_http_insecure(6, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     405 +Rule_Pattern_ruby_lang_http_insecure(7, node1) :- AST_NodeType(node1, "assignment"), AST_NodeField(node1, node2, "left"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, _), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "url"), AST_NodeField(node1, node5, "right"), AST_NodeType(node5, _).
     406 +Rule_Pattern_ruby_lang_http_insecure(8, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Multi"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     407 +Rule_Pattern_ruby_lang_http_insecure(9, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Multi"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     408 +Rule_Pattern_ruby_lang_http_insecure(10, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Excon"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     409 +Rule_Pattern_ruby_lang_http_insecure(11, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "get"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     410 +Rule_Pattern_ruby_lang_http_insecure(12, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "post"), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     411 +.decl Rule_Pattern_ruby_third_parties_new_relic(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     412 +Rule("ruby_third_parties_new_relic", patternIndex, node) :- Rule_Pattern_ruby_third_parties_new_relic(patternIndex, node).
     413 +Rule_Pattern_ruby_third_parties_new_relic(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_custom_attributes"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     414 +Rule_Pattern_ruby_third_parties_new_relic(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_custom_parameters"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     415 +Rule_Pattern_ruby_third_parties_new_relic(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "NewRelic"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Agent"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "notice_error"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     416 +.decl Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     417 +Rule("ruby_rails_session_key_using_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(patternIndex, node).
     418 +Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     419 +Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     420 +Rule_Pattern_ruby_rails_session_key_using_user_input_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     421 +.decl Rule_Pattern_ruby_rails_redirect_to(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     422 +Rule("ruby_rails_redirect_to", patternIndex, node) :- Rule_Pattern_ruby_rails_redirect_to(patternIndex, node).
     423 +Rule_Pattern_ruby_rails_redirect_to(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "receiver"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "redirect_to"), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, _).
     424 +.decl Rule_Pattern_ruby_lang_http_insecure_curb(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     425 +Rule("ruby_lang_http_insecure_curb", patternIndex, node) :- Rule_Pattern_ruby_lang_http_insecure_curb(patternIndex, node).
     426 +Rule_Pattern_ruby_lang_http_insecure_curb(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Curl"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Easy"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     427 +.decl Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_dsa_init(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     428 +Rule("ruby_lang_weak_encryption_with_data_openssl_dsa_init", patternIndex, node) :- Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_dsa_init(patternIndex, node).
     429 +Rule_Pattern_ruby_lang_weak_encryption_with_data_openssl_dsa_init(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "OpenSSL"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "PKey"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "DSA"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
     430 +.decl Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     431 +Rule("ruby_lang_http_url_using_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(patternIndex, node).
     432 +Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     433 +Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     434 +Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     435 +Rule_Pattern_ruby_lang_http_url_using_user_input_user_input(3, node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     436 +.decl Rule_Pattern_google_dataflow_message_text_classes(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     437 +Rule("google_dataflow_message_text_classes", patternIndex, node) :- Rule_Pattern_google_dataflow_message_text_classes(patternIndex, node).
     438 +.decl Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_proc(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     439 +Rule("ruby_lang_path_using_user_input_shell_cmd_proc", patternIndex, node) :- Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_proc(patternIndex, node).
     440 +Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_proc(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "command_processor").
     441 +Rule_Pattern_ruby_lang_path_using_user_input_shell_cmd_proc(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Shell"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "CommandProcessor"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     442 +.decl Rule_Pattern_ruby_third_parties_bigquery_dataset(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     443 +Rule("ruby_third_parties_bigquery_dataset", patternIndex, node) :- Rule_Pattern_ruby_third_parties_bigquery_dataset(patternIndex, node).
     444 +Rule_Pattern_ruby_third_parties_bigquery_dataset(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "dataset").
     445 +.decl Rule_Pattern_ruby_lang_path_using_user_input_shell(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     446 +Rule("ruby_lang_path_using_user_input_shell", patternIndex, node) :- Rule_Pattern_ruby_lang_path_using_user_input_shell(patternIndex, node).
     447 +Rule_Pattern_ruby_lang_path_using_user_input_shell(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "constant"), AST_NodeContent(node2, "Shell"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, "identifier"), AST_NodeContent(node3, "new").
     448 +.decl Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     449 +Rule("ruby_lang_ftp_using_user_input_ftp", patternIndex, node) :- Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(patternIndex, node).
     450 +Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new").
     451 +Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open").
     452 +Rule_Pattern_ruby_lang_ftp_using_user_input_ftp(2, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "block"), AST_NodeField(node6, node7, "parameters"), AST_NodeType(node7, "block_parameters"), AST_ParentChild(node7, 0, node8), AST_NodeType(node8, _).
     453 +.decl Rule_Pattern_ruby_lang_ftp_using_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     454 +Rule("ruby_lang_ftp_using_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_ftp_using_user_input(patternIndex, node).
     455 +Rule_Pattern_ruby_lang_ftp_using_user_input(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "new"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     456 +Rule_Pattern_ruby_lang_ftp_using_user_input(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Net"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "FTP"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "open"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     457 +Rule_Pattern_ruby_lang_ftp_using_user_input(2, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
     458 +.decl Rule_Pattern_ruby_third_parties_datadog_span(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     459 +Rule("ruby_third_parties_datadog_span", patternIndex, node) :- Rule_Pattern_ruby_third_parties_datadog_span(patternIndex, node).
     460 +Rule_Pattern_ruby_third_parties_datadog_span(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "active_span").
     461 +Rule_Pattern_ruby_third_parties_datadog_span(2, node1) :- AST_NodeType(node1, "call"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Datadog"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Tracing"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "trace"), AST_NodeField(node1, node6, "block"), AST_NodeType(node6, "block"), AST_NodeField(node6, node7, "parameters"), AST_NodeType(node7, "block_parameters"), AST_ParentChild(node7, 0, node8), AST_NodeType(node8, _).
     462 +.decl Rule_Pattern_ruby_third_parties_scout_apm(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     463 +Rule("ruby_third_parties_scout_apm", patternIndex, node) :- Rule_Pattern_ruby_third_parties_scout_apm(patternIndex, node).
     464 +Rule_Pattern_ruby_third_parties_scout_apm(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "ScoutApm"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Context"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add_user"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     465 +Rule_Pattern_ruby_third_parties_scout_apm(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "ScoutApm"), AST_NodeField(node2, node4, "name"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Context"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "add"), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     466 +.decl Rule_Pattern_ruby_rails_session_key_using_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     467 +Rule("ruby_rails_session_key_using_user_input", patternIndex, node) :- Rule_Pattern_ruby_rails_session_key_using_user_input(patternIndex, node).
     468 +Rule_Pattern_ruby_rails_session_key_using_user_input(0, node1) :- AST_NodeType(node1, "element_reference"), AST_NodeField(node1, node2, "object"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "session"), AST_ParentChild(node1, 0, node3), AST_NodeType(node3, _).
     469 +.decl Rule_Pattern_ruby_rails_logger(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     470 +Rule("ruby_rails_logger", patternIndex, node) :- Rule_Pattern_ruby_rails_logger(patternIndex, node).
     471 +Rule_Pattern_ruby_rails_logger(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "call"), !AST_NodeField(node2, _, "block"), (!AST_NodeField(node2, _, "arguments"); AST_NodeField(node2, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node2, node3, "receiver"), AST_NodeType(node3, "constant"), AST_NodeContent(node3, "Rails"), AST_NodeField(node2, node4, "method"), AST_NodeType(node4, "identifier"), AST_NodeContent(node4, "logger"), AST_NodeField(node1, node5, "method"), AST_NodeType(node5, _), AST_NodeField(node1, node6, "arguments"), AST_NodeType(node6, "argument_list"), AST_ParentChild(node6, 0, node7), AST_NodeType(node7, _).
     472 +.decl Rule_Pattern_ruby_rails_insecure_smtp(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     473 +Rule("ruby_rails_insecure_smtp", patternIndex, node) :- Rule_Pattern_ruby_rails_insecure_smtp(patternIndex, node).
     474 +.decl Rule_Pattern_ruby_lang_ssl_verification(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     475 +Rule("ruby_lang_ssl_verification", patternIndex, node) :- Rule_Pattern_ruby_lang_ssl_verification(patternIndex, node).
     476 +.decl Rule_Pattern_ruby_rails_insecure_disabling_of_callback(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     477 +Rule("ruby_rails_insecure_disabling_of_callback", patternIndex, node) :- Rule_Pattern_ruby_rails_insecure_disabling_of_callback(patternIndex, node).
     478 +Rule_Pattern_ruby_rails_insecure_disabling_of_callback(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), !AST_NodeField(node1, _, "receiver"), AST_NodeField(node1, node2, "method"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "arguments"), AST_NodeType(node3, "argument_list"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "pair"), AST_NodeField(node4, tmp0, "key"), (AST_NodeType(tmp0, "simple_symbol"), AST_NodeContent(tmp0, ":CurioVar1"); AST_NodeType(tmp0, "hash_key_symbol"), AST_NodeContent(tmp0, "CurioVar1")), AST_NodeField(node4, node5, "value"), AST_NodeType(node5, _).
     479 +.decl Rule_Pattern_ruby_third_parties_bigquery_client(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     480 +Rule("ruby_third_parties_bigquery_client", patternIndex, node) :- Rule_Pattern_ruby_third_parties_bigquery_client(patternIndex, node).
     481 +Rule_Pattern_ruby_third_parties_bigquery_client(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Bigquery"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
     482 +Rule_Pattern_ruby_third_parties_bigquery_client(1, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), (!AST_NodeField(node1, _, "arguments"); AST_NodeField(node1, tmp0, "arguments"), !AST_ParentChild(tmp0, _, _)), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "scope_resolution"), AST_NodeField(node2, node3, "scope"), AST_NodeType(node3, "scope_resolution"), AST_NodeField(node3, node4, "scope"), AST_NodeType(node4, "constant"), AST_NodeContent(node4, "Google"), AST_NodeField(node3, node5, "name"), AST_NodeType(node5, "constant"), AST_NodeContent(node5, "Cloud"), AST_NodeField(node2, node6, "name"), AST_NodeType(node6, "constant"), AST_NodeContent(node6, "Bigquery"), AST_NodeField(node1, node7, "method"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "new").
     483 +.decl Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     484 +Rule("ruby_lang_reflection_using_user_input_user_input", patternIndex, node) :- Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(patternIndex, node).
     485 +Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(0, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "params").
     486 +Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(1, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "request").
     487 +Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(2, node1) :- AST_NodeType(node1, "identifier"), AST_NodeContent(node1, "cookies").
     488 +Rule_Pattern_ruby_lang_reflection_using_user_input_user_input(3, node1) :- AST_NodeType(node1, "method"), AST_NodeField(node1, node2, "name"), AST_NodeType(node2, _), AST_NodeField(node1, node3, "parameters"), AST_NodeType(node3, "method_parameters"), AST_ParentChild(node3, 0, node4), AST_NodeType(node4, "keyword_parameter"), !AST_NodeField(node4, _, "value"), AST_NodeField(node4, node5, "name"), AST_NodeType(node5, "identifier"), AST_NodeContent(node5, "event"), AST_ParentChild(node3, 1, node6), AST_NodeType(node6, "keyword_parameter"), !AST_NodeField(node6, _, "value"), AST_NodeField(node6, node7, "name"), AST_NodeType(node7, "identifier"), AST_NodeContent(node7, "context").
     489 +.decl Rule_Pattern_ruby_lang_logger(patternIndex: Rule_PatternIndex, node: AST_NodeId)
     490 +Rule("ruby_lang_logger", patternIndex, node) :- Rule_Pattern_ruby_lang_logger(patternIndex, node).
     491 +Rule_Pattern_ruby_lang_logger(0, node1) :- AST_NodeType(node1, "call"), !AST_NodeField(node1, _, "block"), AST_NodeField(node1, node2, "receiver"), AST_NodeType(node2, "identifier"), AST_NodeContent(node2, "logger"), AST_NodeField(node1, node3, "method"), AST_NodeType(node3, _), AST_NodeField(node1, node4, "arguments"), AST_NodeType(node4, "argument_list"), AST_ParentChild(node4, 0, node5), AST_NodeType(node5, _).
    492 492   
  • ■ ■ ■ ■ ■ ■
    souffle/rules.dl
    skipped 2 lines
    3 3   
    4 4  .type Rule_Name <: symbol
    5 5  .type Rule_VariableName <: symbol
     6 +.type Rule_PatternIndex <: unsigned
    6 7   
    7 8   
    8  -.decl Rule(rule: Rule_Name, node: AST_NodeId)
     9 +.decl Rule(rule: Rule_Name, patternIndex: Rule_PatternIndex, node: AST_NodeId)
    9 10   
    10 11   
    11  -.decl Rule_Match(rule: Rule_Name, node: AST_NodeId, location: AST_Location)
     12 +.decl Rule_Match(rule: Rule_Name, patternIndex: Rule_PatternIndex, node: AST_NodeId, location: AST_Location)
    12 13  .output Rule_Match
    13 14   
    14  -Rule_Match(rule, node, location) :- Rule(rule, node), AST_NodeLocation(node, location).
     15 +Rule_Match(rule, patternIndex, node, location) :- Rule(rule, patternIndex, node), AST_NodeLocation(node, location).
    15 16   
    16 17   
    17 18  // .decl Rule_MatchVariable(rule: Rule_Name, node: AST_Node, variable: Rule_VariableName, variableNode: AST_Node)
    skipped 7 lines
Please wait...
Page is in error, reload to recover