{
  "llm": {
    "conf": 0.02601849,
    "grade": "benign",
    "model": "qwen/qwen3.8-27b",
    "outcome": "benign",
    "interpretation": "standard caching library"
  },
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.03883357,
        "rte": "az",
        "prob": 0.03883357
      },
      {
        "cls": 0,
        "raw": 0.002954473,
        "rte": "az/gem",
        "prob": 0.002954473
      }
    ],
    "prob": 0.03883357,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.03883356973528862,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00007171431934693828,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000029027462005615234,
        "type": "ruby"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000026444593459018506,
        "type": "ruby"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0000322262458212208,
        "type": "ruby"
      },
      {
        "id": 5,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000028034051865688525,
        "type": "ruby"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000030328830689541064,
        "type": "ruby"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000027408203095546924,
        "type": "ruby"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000024527311325073242,
        "type": "ruby"
      },
      {
        "id": 9,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000024159749955288135,
        "type": "ruby"
      },
      {
        "id": 28,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002872943878173828,
        "type": "registry"
      },
      {
        "id": 29,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002872943878173828,
        "type": "registry"
      },
      {
        "id": 30,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002872943878173828,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-04T05:49:22Z"
  },
  "path": "padrino-cache-0.11.4.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmg=d2?fFCgmfFCfXfFCgm",
            "ln": 0
          }
        ],
        "mol": "H₄(Cm₂DbF₂Po₂)Md(Pa)",
        "sha": "dc693a169a123622a34a033e515993e746cc60e684e2dab65a427d8e9864fbf9",
        "path": "padrino-cache-0.11.4.gem",
        "refs": [
          {
            "to": "pkg:gem/padrino-core",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/padrino-helpers",
            "off": 0,
            "kind": "dependency"
          }
        ],
        "risk": 6,
        "size": 17408,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 2,
              "runtime_dependency_count": 2,
              "development_dependency_count": 0
            },
            "file": {
              "size": 17408,
              "entropy": 7.22
            },
            "binary": {
              "peak_region_bytes": 12288,
              "peak_region_entropy": 7.82
            },
            "archive": {
              "file_count": 3,
              "member_count": 3,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 14120,
              "max_filename_length": 17,
              "rtlo_filename_count": 0,
              "format.regular_count": 3,
              "nested_archive_count": 3,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "timing.mtime_unique_count": 1,
              "misplaced_executable_count": 0,
              "timing.mtime_spread_seconds": 0,
              "security.world_writable_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "padrino-cache",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "http://www.padrinorb.com",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Padrino Team",
              "role": "author",
              "source": "gem.authors"
            },
            {
              "name": "Nathan Esquenazi",
              "role": "author",
              "source": "gem.authors"
            },
            {
              "name": "Davide D'Agostino",
              "role": "author",
              "source": "gem.authors"
            },
            {
              "name": "Arthur Chiu",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "0.11.4",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/fs/directory/delete::ruby-fileutils-rm-rf",
            "atk": "T1070.004",
            "mbc": "C0047",
            "conf": 0.95,
            "crit": 3,
            "desc": "Ruby recursively deletes a directory tree"
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "HTTP protocol prefix"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\""
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-3",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"that\""
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-5",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"for\""
          },
          {
            "id": "micro-behaviors/fs/directory/mkdir::ruby-fileutils-mkdir-p",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby creates a directory tree"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          },
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-class-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby class_eval call"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-instance-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby instance_eval call"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 13069,
              "entropy": 7.98
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 13069,
              "peak_region_entropy": 7.82
            }
          }
        },
        "id": 1,
        "mol": "H₄(Cm₂DbF₂Po₂)Md(Pa)",
        "path": "padrino-cache-0.11.4.gem!!data.tar.gz",
        "pid": 0,
        "risk": 6,
        "sha": "1dc02ea0795ba72396ff05a6650038782f1a5240e7206645470c322ee57276c5",
        "size": 13069,
        "traits": [
          {
            "id": "metadata/file/profile/language::lang-english--atom-5",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"for\""
          },
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-class-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby class_eval call"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-instance-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby instance_eval call"
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\""
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "HTTP protocol prefix"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          },
          {
            "id": "micro-behaviors/fs/directory/mkdir::ruby-fileutils-mkdir-p",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby creates a directory tree"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant"
          },
          {
            "id": "micro-behaviors/fs/directory/delete::ruby-fileutils-rm-rf",
            "atk": "T1070.004",
            "mbc": "C0047",
            "conf": 0.95,
            "crit": 3,
            "desc": "Ruby recursively deletes a directory tree"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-3",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"that\""
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "zeS%cy?j.=vpTy)zF]\u003e8az(4cB.\u003eRilT:FrwEoL5arR)N3lQDlar@11wO=r%A=SvAB-qqrA==2kxcqe4xjSi7AV!$mvp%B*zGE1hvpJ$+zF78ox([35zxJvgA+b",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "D2E?CayPkdy?Wx/BzkVhe*abiaAR:DzxJUnaA8cGaAImlAbo!xAb](ux\u003eg=$Bzbj)arR^HarR)KjALWei+8PdxK@qHj%j@/B.9V*BAxX?z/x/jz/cXozxJI8BzblaayMy5z/fVqz!%l3AV/pvaA8deaA7\u003cmx([zsA=l8xwPGEharR^HarR)Klu%X:wObv[y\u0026?iJv{@\u003eXwN(][z/fVdzGE1nB0bBkA=U@oBy!#9CwhejayMxpw[=6)aAITyA+cBqeIh6TvrrSaB1wCFzxJu{arR^HarR)KB9g@5x(W={Bz(hBaA7\u003cmD2E?CayPkdy?Wx/BzkVhaAzysBs)[yarR^Har}joarR^Har@0]wQ4T2Abo7)arR^HarR)KarR)Kq!k",
            "ln": 192,
            "col": 48,
            "line": 8
          },
          {
            "b": "3lQDlarR^K3lQDlarR!zz!a0bwGT/TxjRz)arR^HarR^KbmkLoarR^HarR)Kra]#!aztt5AaK5jx(+ztB7F(8Cwhejx(k54ay/tcBAhqoy?mSfz/M$vz/{ekaARJAx(mD}v{%E\u003caztXqaA7\u003elwO@S2z/fVdzGDjdarR^HarR^KaAIjmB.\u003eOhAaK6h",
            "ln": 1380,
            "col": 31,
            "line": 37
          },
          {
            "b": "arR^Har}joarR^HarR^KavfQYwPw[QBAxY/wN/T@wof\u003c^BAxX?B7F\u003c1zE^/hxKM6}aAg+gB7F(kay/tcBy/uiaAhvjC4\u003e(qB8laAv{@\u003eXwN({cx(4O)arR^HarR^HboQDbay]hcv{%y*wN(](zE:(gwI4}lzE^s0wN)zolVlHDayPtjz!0G\u0026By!#9CwhejaARp9BrCQxB-.gqCwg(fauTjLk5LpXjtgn.j{\u0026zParR^HarR)KvR3V[CX7xcBy!#AaAy[jxK#inazy",
            "ln": 1549,
            "col": 4,
            "line": 43
          },
          {
            "b": "zdLtqz*8J}arR^HarR^HarR^HarR^HC42ifwGTbUB7GDnx(mN8e[ns1xK@/ewPPtvwPI^aC4C2\u003cvpJ$ZuU:j#aBFLVwO#V}cS09dnma}-mO+yqdgdguarR^HarR^",
            "ln": 3492,
            "col": 34,
            "line": 100
          },
          {
            "b": "ay]4}aAz4mz!%PduT)IOxK$K^wQaR9arR^HarR^Hav6%=B-.gEv{@\u003eXwNxj:C}J/LuTVeEp\u0026ZF:diH?$x(n0lvqYN^uUay?y:ZR}A=l8xwIdF3v}YBXyH}=uauySgA=l8xwIdF3v}YBXyH}+#arR^HarR^HwO#2=arR^HarUlkwc%C4arUlkwc%C4wO#2=wO#2=",
            "ln": 4626,
            "col": 8,
            "line": 133
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "cache_expires_in"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "cache_key"
            ],
            [
              "",
              "block_given?"
            ],
            [
              "",
              "cache"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "before_filters"
            ],
            [
              "",
              "caching?"
            ],
            [
              "",
              "now"
            ],
            [
              "",
              "get"
            ],
            [
              "",
              "cache"
            ],
            [
              "",
              "debug"
            ],
            [
              "",
              "cache_key"
            ],
            [
              "",
              "halt"
            ],
            [
              "",
              "after_filters"
            ],
            [
              "",
              "caching?"
            ],
            [
              "",
              "kind_of?"
            ],
            [
              "",
              "now"
            ],
            [
              "",
              "set"
            ],
            [
              "",
              "cache"
            ],
            [
              "",
              "set"
            ],
            [
              "",
              "cache"
            ],
            [
              "",
              "debug"
            ],
            [
              "",
              "cache_key"
            ],
            [
              "",
              "is_a?"
            ],
            [
              "",
              "cache_key"
            ],
            [
              "",
              "instance_eval"
            ],
            [
              "",
              "cache_key"
            ],
            [
              "",
              "cache_key"
            ]
          ],
          "mbr": [
            "@_response_buffer.kind_of?",
            "@route.cache_expires_in",
            "@route.cache_key",
            "@route.cache_key.is_a?",
            "Time.now",
            "logger.debug",
            "route.after_filters",
            "route.before_filters",
            "route.cache",
            "settings.cache",
            "settings.cache.get",
            "settings.cache.set",
            "settings.caching?"
          ],
          "tgt": [
            "after_filters",
            "before_filters",
            "block_given?",
            "cache",
            "cache_expires_in",
            "cache_key",
            "caching?",
            "debug",
            "get",
            "halt",
            "include?",
            "instance_eval",
            "is_a?",
            "kind_of?",
            "now",
            "raise",
            "set"
          ],
          "funcs": [
            [
              "expires_in",
              2261
            ],
            [
              "cache_key",
              3071
            ],
            [
              "padrino_route_added",
              3261
            ],
            [
              "resolve_cache_key",
              4627
            ]
          ],
          "metrics": {
            "ast": {
              "op.lor": 5,
              "op.land": 4,
              "max_depth": 25,
              "op.concat": 25,
              "call_count": 29,
              "node_count": 480,
              "member_count": 13,
              "op_density.lor": 0.01,
              "op_density.land": 0.01,
              "member_depth_max": 3,
              "op_density.concat": 0.05
            },
            "file": {
              "size": 4782,
              "entropy": 4.14
            },
            "text": {
              "lines": 139,
              "top_char": 101,
              "max_ws_run": 10,
              "digit_ratio": 0.01,
              "space_count": 1722,
              "char_entropy": 4.14,
              "unique_chars": 73,
              "top_char_null": 0,
              "string_density": 0.06,
              "top_char_ratio": 0.08,
              "avg_line_length": 33.4,
              "max_line_length": 118,
              "empty_line_ratio": 0.06,
              "last_line_length": 3,
              "whitespace_ratio": 0.39,
              "identifier_density": 0.74,
              "line_length_stddev": 28.57,
              "normalized_string_count": 0.76,
              "repeated_char_sequences": 31,
              "normalized_unique_identifiers": 6.32
            },
            "binds": {
              "count": 8
            },
            "binary": {
              "peak_region_bytes": 3758,
              "peak_region_entropy": 4.19
            },
            "source": {
              "class_count": 4,
              "function_count": 4
            },
            "strings": {
              "bytes": 117,
              "count": 9,
              "avg_length": 13,
              "max_length": 42,
              "avg_entropy": 3.29,
              "entropy_stddev": 0.25
            },
            "comments": {
              "chars": 2193,
              "count": 84,
              "empty": 19,
              "lines": 65,
              "to_code_ratio": 0.88
            },
            "functions": {
              "count": 8
            },
            "identifiers": {
              "count": 103,
              "unique": 45,
              "avg_length": 7.51,
              "max_length": 19,
              "min_length": 3,
              "avg_entropy": 2.5,
              "reuse_ratio": 0.44,
              "length_stddev": 4.36,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.02,
              "all_lowercase_ratio": 0.67
            }
          }
        },
        "id": 2,
        "mol": "H(Po)",
        "path": "padrino-cache-0.11.4.gem!!data.tar.gz!!lib/padrino-cache/helpers/page.rb",
        "risk": 2,
        "sha": "0dbb9e8b736fcac0e05aede3b7d1e90a75d5b3ed3348f1bdb58088f31bd13a94",
        "size": 4782,
        "traits": [
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                240,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-3",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                398,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-instance-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby instance_eval call",
            "spans": [
              [
                4690,
                13
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "zeS%cy?j.=vpTy)zF]\u003e8az(4cB.\u003eRilT:FrwEoL5arUJtwozZ1ax9x2A+bO2arR^Har@9rarR^HarR)Kl1j[SA:-E1avxNExK@q+Bz(hh3lQDlarR^K3lQDlarR!py*?yaavoHTwEoL5arR^HarR)N3lQDlarR^Har@10wPP5pxK@q@vpJ$ZaAg+fB7GwmB98ChBy/9ge^-ZzarR^HarR)oarR^HarR^HboPr#ay]4}vrDydazC)tAbn@%zy=]GBzblaCwhbfaBd)Fay!?$aAIaoasX\u003cnvrcB5vqC",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "arR^HboO9Ko(BM+y?j-cw/%]Uwo8y4z-P{DvpJ$ZiYZ8CA=U/jaA8oyvqZukBzb98aAz4mAbPS8aARJAwO#0@wmWA8wN/T?wIarjarR^HarR^K3lQDlarR^Har@0]wQ4T2Abo7)arR^HarR^HboO9KboR5vz/P@hAV/KpA=U@kzAnaEarR^HarR^K",
            "ln": 408,
            "col": 5,
            "line": 21
          },
          {
            "b": "B972MpFK.{A=U/j3lQDlarR^Har}joarR^HarR!qwO967vrcB2AY\u003e*/z!7p7arR^HarR^HarUJtwfs2Tp*))Px(m\u0026IiZWs=xK%j=p*[x=wPxzkz/fSruUr}(c#A)ke{82sB1Q%hzdNJ$DsXJFB-82bB8@Evz!7FmB6\u0026uuc@1R\u003cB.\u003eRr3lQDlarR^HarR!Evqf^]ar\u00264SzeS%kaAIjmB.\u003eOhA+frhz/f8dBz\u0026pkzEWP}wG\u0026mtzFS)9B0bsrwb",
            "ln": 1179,
            "col": 38,
            "line": 45
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "const_get"
            ],
            [
              "",
              "camelize"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "is_a?"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "respond_to?"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "respond_to?"
            ],
            [
              "",
              "parser"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "now"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "now"
            ]
          ],
          "mbr": [
            "Time.now",
            "Time.now.to_i",
            "expiry.to_i",
            "mod.is_a?",
            "mod.respond_to?",
            "mod.to_s",
            "mod.to_s.camelize"
          ],
          "tgt": [
            "camelize",
            "const_get",
            "is_a?",
            "now",
            "parser",
            "raise",
            "respond_to?",
            "to_i",
            "to_s"
          ],
          "funcs": [
            [
              "parser",
              274
            ],
            [
              "parser=",
              1210
            ],
            [
              "initialize",
              1528
            ],
            [
              "get_expiry",
              1665
            ],
            [
              "now_before?",
              1978
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 1,
              "op.gt": 2,
              "op.ne": 1,
              "op.add": 1,
              "op.lor": 2,
              "op.sub": 2,
              "op.land": 2,
              "max_depth": 17,
              "op.concat": 14,
              "call_count": 16,
              "node_count": 288,
              "member_count": 7,
              "op_density.eq": 0,
              "op_density.gt": 0.01,
              "op_density.ne": 0,
              "op_density.add": 0,
              "op_density.lor": 0.01,
              "op_density.sub": 0.01,
              "op_density.land": 0.01,
              "max_concat_chain": 2,
              "member_depth_max": 3,
              "op_density.concat": 0.05
            },
            "file": {
              "size": 2107,
              "entropy": 4.12
            },
            "text": {
              "lines": 76,
              "top_char": 101,
              "max_ws_run": 7,
              "digit_ratio": 0,
              "space_count": 758,
              "char_entropy": 4.12,
              "unique_chars": 70,
              "top_char_null": 0,
              "string_density": 0.03,
              "top_char_ratio": 0.07,
              "avg_line_length": 26.72,
              "max_line_length": 92,
              "empty_line_ratio": 0.05,
              "last_line_length": 3,
              "whitespace_ratio": 0.4,
              "identifier_density": 0.82,
              "line_length_stddev": 22.48,
              "normalized_string_count": 0.23,
              "repeated_char_sequences": 15,
              "normalized_unique_identifiers": 4.48
            },
            "binds": {
              "count": 5
            },
            "binary": {
              "peak_region_bytes": 2048,
              "peak_region_entropy": 4.19
            },
            "source": {
              "class_count": 4,
              "function_count": 4
            },
            "strings": {
              "bytes": 62,
              "count": 2,
              "avg_length": 31,
              "max_length": 31,
              "avg_entropy": 3.76,
              "entropy_stddev": 0.03
            },
            "comments": {
              "chars": 713,
              "count": 38,
              "empty": 10,
              "lines": 28,
              "to_code_ratio": 0.58
            },
            "functions": {
              "count": 8
            },
            "identifiers": {
              "count": 62,
              "unique": 28,
              "avg_length": 6.64,
              "max_length": 12,
              "min_length": 3,
              "avg_entropy": 2.46,
              "reuse_ratio": 0.45,
              "length_stddev": 2.57,
              "all_lowercase_ratio": 0.54,
              "all_uppercase_ratio": 0.04
            }
          }
        },
        "id": 3,
        "mol": "H(Db)",
        "path": "padrino-cache-0.11.4.gem!!data.tar.gz!!lib/padrino-cache/store/base.rb",
        "risk": 2,
        "sha": "fe3f9dadcd6cc8aa03b3193a0fcdde830dfe25463f608a2d7546797ea1fd2e8e",
        "size": 2107,
        "traits": [
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                135,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-3",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                456,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant",
            "spans": [
              [
                1243,
                9
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "zeS%cy?j.=vpTy)zF]\u003e8az(4cB.\u003eRilT:FrwEoL5arUJtwozZ1ax9x2A+bO2arR^Har@9rarR^HarR)KmRMWIayX=2wN(]JvpJ$Zax9x2A+c\u003cgarR^HarR)oarQ",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "lsB}D3lQDlarR^Har@9rarR^HarR^HboPM}x([5$y?XibavZ6YwGV5oz/PziCwhejavZ6YwGV2iz/^PsarR^HarR^HbmkLoarR^HarR)KkYydLvqNb\u003eq/)4]zF9k$A=k(r3lQDlarR^Har@0KaAg+hxDRznay!?\u0026xK@q#x(4uk3lQDlarR^Har}jo",
            "ln": 115,
            "col": 20,
            "line": 7
          },
          {
            "b": "BzkVhB14CsarR^HarR!rzE:7YarR^HarR^Hbo)KrarR^HarR^Kaw#=)B-IvxBzbkdC42ifwGUP6AV/EqwGUS1C4CLlyH}=z3lQDlarR^Har}joarR^HarR^Kav6)OA:-/ctt]S:x(mM?azULl3lQDlarR^Har@0Kay!?\u0026xK@r4wQaR9arR^HarR^K3lQDlarR^Hao",
            "ln": 701,
            "col": 19,
            "line": 23
          },
          {
            "b": "wPPsFA+e:0A+6ksdgdguarR^HarR)oarR^HarR^HwmYu}xjVfkyH}=u3lQDlarR^HarR!vzFsh1arR^HarR^HarUxgauzLMx(4ukwQ4{gBu.f)vruf\u0026w]zY%yH}+",
            "ln": 949,
            "col": 26,
            "line": 34
          },
          {
            "b": "AbPS8uVZiJc]$*KzGoq%wgnS=auA$CzGoq%wfr]Qi=X!uwc%C4arR^HarR^HarUfjzGGDcBAnMEarS/\u0026iYY-Ay?kkuwO#3bA+eV\u0026uU%v@xM4AjaAg+hxKtv\u0026A:JP[C{)DtC{$fHarR^HarR^HarR^HwQ5fdA^ohUvSb!5auZ\u0026Sz/fVdzGG}LB8U@fBsntrzxZROgarLMarR^HarR^HarR!vw/$#fCva/\u003cw]zZ3koKJZAa%ur3lQDl",
            "ln": 1091,
            "col": 37,
            "line": 39
          },
          {
            "b": "arR^Har@9rarR^HarR^HboP]@BrCWswGVe8y\u0026%qiw]zYjvixh%C4CLlyH}=lvqYP#z/x/jz/f01y\u003cvdEx([2hvqWi0CYmwqwGV8ezdLsbarR^HarR^HboPx=w)]*#BrCdtAa%uraARsmwGUYdauhnofFC9^arR^HarR^HbmkLoarR^HarR)KkYyc",
            "ln": 1502,
            "col": 4,
            "line": 53
          },
          {
            "b": "zEWP}wHI.gy\u0026%qrazCBgC42ifwEoL5arR^HarR^HiYY-Ay?kkqAaJ]nAa9\u003c4uUjj%uU:j#c#iytdj=O?Cvz{GaBtkUw{+.kauR+exjVf(wQ5fdA^o6KAccdIe{82sB09Ocar\u003e6da%o0gaA?gfB.8XzazCBgC42ifwEoL5arR^HarUlkwc@U^arR^HarR^KbmkLoarR^HarR)Kl$HgCBy=OpxK@rfvqH6$azbLjayMy9x)a69azQ",
            "ln": 1993,
            "col": 27,
            "line": 68
          },
          {
            "b": "ay]4}ay]51wPRGiyH}=u3lQDlarR^HarR!vzFsh1arR^HarR^HarS%\u003cA::kwyH}=ue[FE3xDRTAD#19LmRMWIrDI}\u003eB1RGIuVG:bAa9\u003c4uUjj%uU:j#c#gmXaBKOtarR^HarR!rzE:7YarR^HarR^Hbo)KrarR^HarR^Kaw#=+zFsibvqGU7wGVnpB-FQmvpJ$Ze^-ZzarR^HarR)oarR^HarR^HboPl.CWUDdy?i}@arR^HarR^Kao",
            "ln": 2451,
            "col": 8,
            "line": 84
          },
          {
            "b": "rDI}\u003eB1R3Bv{%s/c#iyte{82sB15KBarR^HarR^HwO#2=3lQDlarR^Hay]4}azC.cBp6ckarR^HarR^HmRMWIrDI}\u003eB1RrBwnc6\u003eA40$(z/o.DaA.NrwPI]niYY-Ay?kkgCXIkvkpw^qz/o.D3lQDlarR^Haz2C33lQDlarR!rzE:7%arR!rzE:7%az2C33t19=3i",
            "ln": 2927,
            "col": 36,
            "line": 103
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "exist?"
            ],
            [
              "",
              "path_for_key"
            ],
            [
              "",
              "respond_to?"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "path_for_key"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "now_before?"
            ],
            [
              "",
              "decode"
            ],
            [
              "",
              "delete"
            ],
            [
              "",
              "encode"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "path_for_key"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "get_expiry"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "rm_rf"
            ],
            [
              "",
              "path_for_key"
            ],
            [
              "",
              "rm_rf"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "escape"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "mkdir_p"
            ],
            [
              "",
              "exist?"
            ]
          ],
          "mbr": [
            "FileUtils.mkdir_p",
            "FileUtils.rm_rf",
            "contents.split",
            "key.to_s",
            "parser.decode",
            "parser.encode"
          ],
          "tgt": [
            "Array",
            "decode",
            "delete",
            "each",
            "encode",
            "escape",
            "exist?",
            "get_expiry",
            "join",
            "mkdir_p",
            "now_before?",
            "open",
            "path_for_key",
            "respond_to?",
            "rm_rf",
            "send",
            "split",
            "to_s"
          ],
          "funcs": [
            [
              "initialize",
              627
            ],
            [
              "get",
              981
            ],
            [
              "set",
              1920
            ],
            [
              "delete",
              2452
            ],
            [
              "flush",
              2790
            ],
            [
              "path_for_key",
              2870
            ],
            [
              "init",
              2972
            ]
          ],
          "metrics": {
            "ast": {
              "op.shl": 3,
              "max_depth": 21,
              "op.concat": 16,
              "call_count": 25,
              "node_count": 427,
              "member_count": 6,
              "op_density.shl": 0.01,
              "member_depth_max": 2,
              "op_density.concat": 0.04
            },
            "file": {
              "size": 3084,
              "entropy": 4.14
            },
            "text": {
              "lines": 112,
              "top_char": 101,
              "max_ws_run": 4,
              "digit_ratio": 0.01,
              "space_count": 1132,
              "char_entropy": 4.14,
              "unique_chars": 67,
              "top_char_null": 0,
              "string_density": 0.03,
              "top_char_ratio": 0.07,
              "avg_line_length": 26.54,
              "max_line_length": 107,
              "empty_line_ratio": 0.05,
              "last_line_length": 3,
              "whitespace_ratio": 0.4,
              "identifier_density": 0.83,
              "line_length_stddev": 21.55,
              "normalized_string_count": 0.28,
              "repeated_char_sequences": 24,
              "suspicious_identifier_ratio": 0.04,
              "normalized_unique_identifiers": 6.61
            },
            "binds": {
              "count": 4
            },
            "binary": {
              "peak_region_bytes": 3072,
              "peak_region_entropy": 4.13
            },
            "source": {
              "class_count": 4,
              "function_count": 7
            },
            "strings": {
              "bytes": 4,
              "count": 3,
              "avg_length": 1.33,
              "max_length": 2,
              "avg_entropy": 0.33,
              "entropy_stddev": 0.47
            },
            "comments": {
              "chars": 1190,
              "count": 61,
              "empty": 15,
              "lines": 46,
              "to_code_ratio": 0.7
            },
            "functions": {
              "count": 11
            },
            "identifiers": {
              "count": 93,
              "unique": 45,
              "avg_length": 5.69,
              "max_length": 12,
              "min_length": 1,
              "avg_entropy": 2.17,
              "reuse_ratio": 0.48,
              "length_stddev": 2.54,
              "sequential_names": 2,
              "single_char_count": 2,
              "single_char_ratio": 0.04,
              "all_lowercase_ratio": 0.71
            }
          }
        },
        "id": 4,
        "mol": "H₂(DbF₂)",
        "path": "padrino-cache-0.11.4.gem!!data.tar.gz!!lib/padrino-cache/store/file.rb",
        "risk": 3,
        "sha": "e12bcbef67d13d67c3553ea74e680dc763610d8106b7cb41ef7fba6a9ebf177d",
        "size": 3084,
        "traits": [
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                749,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-5",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                759,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send",
            "spans": [
              [
                1155,
                4
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/delete::ruby-fileutils-rm-rf",
            "atk": "T1070.004",
            "mbc": "C0047",
            "conf": 0.95,
            "crit": 3,
            "desc": "Ruby recursively deletes a directory tree",
            "spans": [
              [
                2515,
                5
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/mkdir::ruby-fileutils-mkdir-p",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby creates a directory tree",
            "spans": [
              [
                2991,
                18
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 5,
        "mol": "H₂(CmDb)",
        "sha": "83ef590aa769c57fa28da924624e3902de8ef618efcd178cb7a1d31d81b63103",
        "path": "padrino-cache-0.11.4.gem!!data.tar.gz!!lib/padrino-cache/store/redis.rb",
        "risk": 2,
        "size": 2969,
        "type": "ruby",
        "depth": 2
      },
      {
        "ctx": [
          {
            "b": "boXZ.B8\u0026{yx(kOnzGWdnwO\u0026M0B.LV53l{W8zEWP}x(mMAaA.^reJs7AA+flkx(W=cmRMWIe[GoDvqYQ.Aa9\u003c4c)yn@fd[\u003egAa9o$x(m\u0026vv@Dy0fkLuifk$ugA+PAfeN@ZtwInjrA=U@kzz2%sa$K\u003czuQ^QXmpfyJ3jopmz8%ZRAaJJ[w[+:-BzkVhe]ClAay]ykD#\u003cVxarU.TzEEx[auZ?\u003eAa9o$x(m\u0026vv{@\u003eXwG?E7aAGeQBZ/Sdz/PG4uVp47ygQ)%auZ?\u003eAa9o$x(m\u0026vv{@\u003eXwG?E7aAGezB-.qnA=Su^ax{3^vpTy)zF{T%wNPB1efDcivruf\u003ezxIw?ADL\u0026gvr#SiefDc8vrMu}wGTw*l1+aSBzkSha$J",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "vqfK2jS\u003e}/vpTy)zF%M8kXB}xx(2ziz/3W9arU.TB9htpvrcSojS\u003e}Bvp%c]vqYP#w].r)zdNQbay!?\u0026xLzu%azbLjaw=GSA+PAfa{]CnB1RcAzdNV{xjShGar\u003eGvBz%n]fl.R:e]UlfA+PAfA:*Uhz/3W9arU.TwmY*(A+PGmx(v(ijS\u003e}ovpJ$+zF78kB-qqrA=-Boz/M$qwO\u003e{=v}YB:efF[uxjSh]zE:(4A:-P$wO#Pl3lQEje]\u003eJyB.L(cwm6w1vThP$zf66cwPz\u003caz/cWXar\u003c0jatCG8e\u0026B)XarU.TC4CYnx(v(ijS\u003c",
            "ln": 320,
            "col": 7,
            "line": 10
          },
          {
            "b": "z7N5Aa$i\u003caarU.TwQ5rqvpa4=z!0c^x(4v4auZ\u0026nx(WA4dLt:Lz^%$%3lQEje[O*lwPF$parR^HarR^\u0026ayF?@BrCyveOnZkwPIliB8U@fBsntrzxZIparU.TBy/JnuUj1*wPF$parS/\u0026u$Tg}az=9Jw[=6)B094^aBwiwB95%OAaJJgw[ty)B-I5mEj)6Te]$#Fx(\u003e:EtY7-m3lQEje[Gosv%8)4vR/Q%arR^\u0026ayF?@BrCyveOnZkwPF$CeG!Ipzz9FEe]$#Fx(\u003e:EtY7-me]t3oDMWYFD($))y?kkdvrl0$vqPN7w*[\u003cJ3lQEje]\u003eJyB.L(cuVoB}xMCpVax{4ax\u003c@n(3lQEje]\u003eGvv{:d[BzkVhB08O*ax{3weN@E5A=U/ljYLDJeJs}W3jm)#B1Q)iwm6w1zGGPfwNw$V",
            "ln": 620,
            "col": 35,
            "line": 16
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "expand_path"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "name"
            ],
            [
              "",
              "rubyforge_project"
            ],
            [
              "",
              "authors"
            ],
            [
              "",
              "email"
            ],
            [
              "",
              "summary"
            ],
            [
              "",
              "homepage"
            ],
            [
              "",
              "description"
            ],
            [
              "",
              "required_rubygems_version"
            ],
            [
              "",
              "version"
            ],
            [
              "",
              "version"
            ],
            [
              "",
              "date"
            ],
            [
              "",
              "strftime"
            ],
            [
              "",
              "now"
            ],
            [
              "",
              "extra_rdoc_files"
            ],
            [
              "",
              "files"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "test_files"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "executables"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "basename"
            ],
            [
              "",
              "require_paths"
            ],
            [
              "",
              "rdoc_options"
            ],
            [
              "",
              "add_runtime_dependency"
            ],
            [
              "",
              "version"
            ],
            [
              "",
              "add_runtime_dependency"
            ],
            [
              "",
              "version"
            ]
          ],
          "mbr": [
            "File.basename",
            "File.expand_path",
            "Padrino.version",
            "Time.now",
            "Time.now.strftime",
            "s.add_runtime_dependency",
            "s.authors",
            "s.date",
            "s.description",
            "s.email",
            "s.executables",
            "s.extra_rdoc_files",
            "s.files",
            "s.homepage",
            "s.name",
            "s.rdoc_options",
            "s.require_paths",
            "s.required_rubygems_version",
            "s.rubyforge_project",
            "s.summary",
            "s.test_files",
            "s.version"
          ],
          "tgt": [
            "add_runtime_dependency",
            "authors",
            "basename",
            "date",
            "description",
            "email",
            "executables",
            "expand_path",
            "extra_rdoc_files",
            "files",
            "homepage",
            "map",
            "name",
            "new",
            "now",
            "rdoc_options",
            "require",
            "require_paths",
            "required_rubygems_version",
            "rubyforge_project",
            "split",
            "strftime",
            "summary",
            "test_files",
            "version"
          ],
          "metrics": {
            "ast": {
              "max_depth": 10,
              "op.concat": 30,
              "call_count": 31,
              "node_count": 313,
              "member_count": 22,
              "max_array_len": 4,
              "member_depth_max": 3,
              "op_density.concat": 0.1
            },
            "file": {
              "size": 1065,
              "entropy": 5.03
            },
            "text": {
              "lines": 27,
              "top_char": 101,
              "max_ws_run": 9,
              "digit_ratio": 0.01,
              "space_count": 121,
              "char_entropy": 5.03,
              "unique_chars": 69,
              "top_char_null": 0,
              "string_density": 0.78,
              "top_char_ratio": 0.07,
              "avg_line_length": 38.44,
              "max_line_length": 86,
              "empty_line_ratio": 0.15,
              "last_line_length": 3,
              "whitespace_ratio": 0.14,
              "identifier_density": 2.3,
              "line_length_stddev": 25.77,
              "normalized_string_count": 4.04,
              "suspicious_identifier_ratio": 0.06,
              "normalized_unique_identifiers": 7.15
            },
            "binds": {
              "count": 16
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 5.04
            },
            "strings": {
              "bytes": 326,
              "count": 21,
              "url_count": 1,
              "avg_length": 15.52,
              "max_length": 48,
              "path_count": 1,
              "avg_entropy": 2.81,
              "email_count": 1,
              "entropy_stddev": 1.29
            },
            "comments": {
              "chars": 39,
              "count": 2,
              "lines": 2,
              "to_code_ratio": 0.08
            },
            "identifiers": {
              "count": 62,
              "unique": 34,
              "avg_length": 8.12,
              "max_length": 25,
              "min_length": 1,
              "avg_entropy": 2.42,
              "reuse_ratio": 0.55,
              "length_stddev": 5.55,
              "sequential_names": 2,
              "single_char_count": 2,
              "single_char_ratio": 0.06,
              "high_entropy_count": 3,
              "high_entropy_ratio": 0.09,
              "all_lowercase_ratio": 0.79,
              "all_uppercase_ratio": 0.03,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 6,
        "mol": "H₂(CmPo)Md(Pa)",
        "path": "padrino-cache-0.11.4.gem!!data.tar.gz!!padrino-cache.gemspec",
        "risk": 3,
        "sha": "97e30095d835a2e5e5d692b6ba3480f88e93ba7bf42b513d4e8e03c4d266640e",
        "size": 1065,
        "traits": [
          {
            "id": "metadata/file/profile/language::lang-english--atom-5",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                389,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name",
            "spans": [
              [
                130,
                40
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/message::http-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "HTTP protocol prefix",
            "spans": [
              [
                418,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution",
            "spans": [
              [
                685,
                14
              ],
              [
                732,
                40
              ],
              [
                805,
                23
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal",
            "spans": [
              [
                418,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal",
            "spans": [
              [
                418,
                24
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 7,
        "mol": "H(Po)",
        "sha": "12bb7957dc9795c409565357e21cda974f89f4f564e4ef81d934887e666431e3",
        "path": "padrino-cache-0.11.4.gem!!data.tar.gz!!test/helper.rb",
        "risk": 2,
        "size": 1023,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 8,
        "mol": "H(F)",
        "sha": "3f65845532c7bdf8930f5652a380a0032dedd2ca8236fb2faf4fa25ee1ece588",
        "path": "padrino-cache-0.11.4.gem!!data.tar.gz!!test/stores/test_file.rb",
        "risk": 2,
        "size": 447,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 9,
        "mol": "H(Po)",
        "sha": "04cbf674f18febad1cf1cbd705a8830cf8e8a8d8832a2ab116ff6a99fc6ac95f",
        "path": "padrino-cache-0.11.4.gem!!data.tar.gz!!test/test_padrino_cache.rb",
        "risk": 2,
        "size": 7244,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 28,
        "sha": "8451cf4d6081c8dc00d31e0f3b6d1ffc81836275e5dd5adc1a41121d13c3bb18",
        "path": "padrino-core@0.16.1.registry.json",
        "size": 923,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 29,
        "sha": "e802ce380f3134327eed23a83587886238466c7ff1ef8119f3d002e3f0939379",
        "path": "padrino-helpers@0.16.1.registry.json",
        "size": 960,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 30,
        "sha": "5b3f08c2372140202d5894b4a63d2e79670f099710528d4afc606d68eecb37de",
        "path": "padrino-cache@0.11.4.registry.json",
        "size": 918,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 7,
    "rev": "479f3",
    "v": "8"
  }
}