pwn 0.5.621 → 0.5.626

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -2
  3. data/Gemfile +1 -1
  4. data/README.md +7 -1
  5. data/bin/pwn_gqrx_scanner +78 -9
  6. data/documentation/Agent-Tool-Registry.md +3 -3
  7. data/documentation/Configuration.md +301 -47
  8. data/documentation/Cron.md +5 -3
  9. data/documentation/Diagrams.md +1 -1
  10. data/documentation/Extrospection.md +472 -26
  11. data/documentation/FFI.md +72 -8
  12. data/documentation/Home.md +4 -4
  13. data/documentation/How-PWN-Works.md +7 -3
  14. data/documentation/Mistakes.md +9 -0
  15. data/documentation/SDR.md +83 -10
  16. data/documentation/Skills-Memory-Learning.md +101 -11
  17. data/documentation/diagrams/agent-tool-registry.svg +56 -55
  18. data/documentation/diagrams/ai-integration-tool-calling.svg +24 -24
  19. data/documentation/diagrams/aws-cloud-security.svg +25 -25
  20. data/documentation/diagrams/burp-vs-zap-preference.svg +12 -12
  21. data/documentation/diagrams/code-scanning-sast.svg +25 -25
  22. data/documentation/diagrams/cron-scheduling.svg +23 -23
  23. data/documentation/diagrams/dot/agent-tool-registry.dot +2 -2
  24. data/documentation/diagrams/dot/extrospection-world-awareness.dot +33 -6
  25. data/documentation/diagrams/dot/hardware-hacking.dot +3 -1
  26. data/documentation/diagrams/dot/memory-skills-detailed.dot +4 -2
  27. data/documentation/diagrams/dot/mistakes-negative-feedback.dot +4 -2
  28. data/documentation/diagrams/dot/overall-pwn-architecture.dot +3 -3
  29. data/documentation/diagrams/dot/persistence-filesystem.dot +3 -3
  30. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +10 -4
  31. data/documentation/diagrams/dot/sdr-radio-flow.dot +39 -16
  32. data/documentation/diagrams/driver-framework.svg +13 -13
  33. data/documentation/diagrams/extrospection-world-awareness.svg +383 -177
  34. data/documentation/diagrams/fuzzing-workflow.svg +24 -24
  35. data/documentation/diagrams/hardware-hacking.svg +84 -69
  36. data/documentation/diagrams/history-to-drivers.svg +18 -18
  37. data/documentation/diagrams/memory-skills-detailed.svg +137 -120
  38. data/documentation/diagrams/mistakes-negative-feedback.svg +152 -137
  39. data/documentation/diagrams/network-infra-testing.svg +27 -27
  40. data/documentation/diagrams/overall-pwn-architecture.svg +97 -97
  41. data/documentation/diagrams/penetration-testing-workflow.svg +30 -30
  42. data/documentation/diagrams/persistence-filesystem.svg +100 -94
  43. data/documentation/diagrams/plugin-ecosystem.svg +35 -35
  44. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +254 -207
  45. data/documentation/diagrams/pwn-repl-prototyping.svg +20 -20
  46. data/documentation/diagrams/reporting-pipeline.svg +18 -18
  47. data/documentation/diagrams/reverse-engineering-flow.svg +21 -21
  48. data/documentation/diagrams/sdr-radio-flow.svg +223 -91
  49. data/documentation/diagrams/sessions-cron-automation.svg +18 -18
  50. data/documentation/diagrams/swarm-multi-agent.svg +39 -39
  51. data/documentation/diagrams/web-application-testing.svg +26 -26
  52. data/documentation/diagrams/zero-day-research-flow.svg +25 -25
  53. data/documentation/pwn-ai-Agent.md +16 -10
  54. data/documentation/pwn_silent_help_learn_demo.gif +0 -0
  55. data/lib/pwn/ai/agent/assembly.rb +1 -1
  56. data/lib/pwn/ai/agent/btc.rb +1 -1
  57. data/lib/pwn/ai/agent/burp_suite.rb +1 -1
  58. data/lib/pwn/ai/agent/extrospection.rb +2562 -57
  59. data/lib/pwn/ai/agent/gqrx.rb +2 -2
  60. data/lib/pwn/ai/agent/hacker_one.rb +1 -1
  61. data/lib/pwn/ai/agent/learning.rb +16 -16
  62. data/lib/pwn/ai/agent/loop.rb +1 -1
  63. data/lib/pwn/ai/agent/{introspection.rb → reflect.rb} +12 -12
  64. data/lib/pwn/ai/agent/sast.rb +1 -1
  65. data/lib/pwn/ai/agent/tools/extrospection.rb +311 -8
  66. data/lib/pwn/ai/agent/tools/learning.rb +7 -7
  67. data/lib/pwn/ai/agent/transparent_browser.rb +1 -1
  68. data/lib/pwn/ai/agent/vuln_gen.rb +2 -2
  69. data/lib/pwn/ai/agent.rb +1 -1
  70. data/lib/pwn/ai/open_ai.rb +10 -6
  71. data/lib/pwn/config.rb +5 -4
  72. data/lib/pwn/ffi/adalm_pluto.rb +498 -0
  73. data/lib/pwn/ffi/fftw.rb +192 -0
  74. data/lib/pwn/ffi/hack_rf.rb +193 -0
  75. data/lib/pwn/ffi/liquid.rb +244 -0
  76. data/lib/pwn/ffi/rtl_sdr.rb +210 -0
  77. data/lib/pwn/ffi/soapy_sdr.rb +177 -0
  78. data/lib/pwn/ffi/stdio.rb +9 -1
  79. data/lib/pwn/ffi/volk.rb +241 -0
  80. data/lib/pwn/ffi.rb +45 -2
  81. data/lib/pwn/plugins/burp_suite.rb +2 -2
  82. data/lib/pwn/sast/pom_version.rb +2 -2
  83. data/lib/pwn/sast/test_case_engine.rb +1 -1
  84. data/lib/pwn/sdr/decoder/adsb.rb +201 -12
  85. data/lib/pwn/sdr/decoder/apt.rb +19 -5
  86. data/lib/pwn/sdr/decoder/base.rb +314 -1
  87. data/lib/pwn/sdr/decoder/bluetooth.rb +91 -18
  88. data/lib/pwn/sdr/decoder/dect.rb +81 -23
  89. data/lib/pwn/sdr/decoder/dsp.rb +229 -15
  90. data/lib/pwn/sdr/decoder/flex.rb +23 -6
  91. data/lib/pwn/sdr/decoder/gps.rb +80 -18
  92. data/lib/pwn/sdr/decoder/gsm.rb +83 -28
  93. data/lib/pwn/sdr/decoder/iridium.rb +80 -18
  94. data/lib/pwn/sdr/decoder/lora.rb +84 -28
  95. data/lib/pwn/sdr/decoder/lte.rb +80 -18
  96. data/lib/pwn/sdr/decoder/morse.rb +23 -6
  97. data/lib/pwn/sdr/decoder/p25.rb +90 -31
  98. data/lib/pwn/sdr/decoder/pager.rb +23 -6
  99. data/lib/pwn/sdr/decoder/pocsag.rb +23 -6
  100. data/lib/pwn/sdr/decoder/rds.rb +219 -52
  101. data/lib/pwn/sdr/decoder/rfid.rb +81 -27
  102. data/lib/pwn/sdr/decoder/rtl433.rb +85 -27
  103. data/lib/pwn/sdr/decoder/rtty.rb +23 -6
  104. data/lib/pwn/sdr/decoder/wifi.rb +86 -32
  105. data/lib/pwn/sdr/decoder/zigbee.rb +88 -35
  106. data/lib/pwn/sdr/decoder.rb +6 -5
  107. data/lib/pwn/sdr/frequency_allocation.rb +124 -81
  108. data/lib/pwn/sdr/gqrx.rb +1513 -165
  109. data/lib/pwn/version.rb +1 -1
  110. data/spec/lib/pwn/ai/agent/extrospection_spec.rb +96 -0
  111. data/spec/lib/pwn/ai/agent/{introspection_spec.rb → reflect_spec.rb} +3 -3
  112. data/spec/lib/pwn/ai/agent/tools/extrospection_spec.rb +8 -24
  113. data/spec/lib/pwn/ffi/adalm_pluto_spec.rb +37 -0
  114. data/spec/lib/pwn/ffi/fftw_spec.rb +26 -0
  115. data/spec/lib/pwn/ffi/hack_rf_spec.rb +25 -0
  116. data/spec/lib/pwn/ffi/liquid_spec.rb +42 -0
  117. data/spec/lib/pwn/ffi/rtl_sdr_spec.rb +24 -0
  118. data/spec/lib/pwn/ffi/soapy_sdr_spec.rb +25 -0
  119. data/spec/lib/pwn/ffi/volk_spec.rb +36 -0
  120. data/spec/lib/pwn/sdr/decoder/base_iq_spec.rb +65 -0
  121. data/spec/lib/pwn/sdr/decoder/dsp_spec.rb +50 -4
  122. data/spec/lib/pwn/sdr/decoder/rds_spec.rb +45 -4
  123. data/third_party/pwn_rdoc.jsonl +279 -30
  124. metadata +21 -5
@@ -4,330 +4,536 @@
4
4
  <!-- Generated by graphviz version 14.1.2 (0)
5
5
  -->
6
6
  <!-- Title: PWN_Extrospection Pages: 1 -->
7
- <svg width="1157pt" height="987pt"
8
- viewBox="0.00 0.00 1157.00 987.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
- <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 943.33)">
7
+ <svg width="1178pt" height="1342pt"
8
+ viewBox="0.00 0.00 1178.00 1342.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+ <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 1299.2)">
10
10
  <title>PWN_Extrospection</title>
11
- <polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-943.33 1114.2,-943.33 1114.2,43.2 -43.2,43.2"/>
12
- <text xml:space="preserve" text-anchor="start" x="289.12" y="-878.13" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::AI::Agent::Extrospection — World Awareness</text>
13
- <text xml:space="preserve" text-anchor="start" x="290.25" y="-866.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#94a3b8">snapshot · drift · observe · intel · watch · verify · correlate &#160;— &#160;host · net · toolchain · repo · env · rf · web</text>
11
+ <polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-1299.2 1134.45,-1299.2 1134.45,43.2 -43.2,43.2"/>
12
+ <text xml:space="preserve" text-anchor="start" x="195" y="-1234" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::AI::Agent::Extrospection — On&#45;demand sensing + ambient baseline</text>
13
+ <text xml:space="preserve" text-anchor="start" x="145.5" y="-1222.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#94a3b8">PRIMARY: intel · verify · watch · rf_tune · osint · serial · telecomm · packet · vision · voice · observe &#160;· &#160;SECONDARY: snapshot/drift (AUTO_SECTIONS=host/repo/env)</text>
14
14
  <g id="clust1" class="cluster">
15
15
  <title>cluster_world</title>
16
- <path fill="#450a0a" stroke="#b91c1c" stroke-dasharray="5,2" d="M20,-314.13C20,-314.13 155.5,-314.13 155.5,-314.13 161.5,-314.13 167.5,-320.13 167.5,-326.13 167.5,-326.13 167.5,-841.13 167.5,-841.13 167.5,-847.13 161.5,-853.13 155.5,-853.13 155.5,-853.13 20,-853.13 20,-853.13 14,-853.13 8,-847.13 8,-841.13 8,-841.13 8,-326.13 8,-326.13 8,-320.13 14,-314.13 20,-314.13"/>
17
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-830.13" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#fecaca">Outside World</text>
16
+ <path fill="#450a0a" stroke="#b91c1c" stroke-dasharray="5,2" d="M20,-116C20,-116 157,-116 157,-116 163,-116 169,-122 169,-128 169,-128 169,-1166 169,-1166 169,-1172 163,-1178 157,-1178 157,-1178 20,-1178 20,-1178 14,-1178 8,-1172 8,-1166 8,-1166 8,-128 8,-128 8,-122 14,-116 20,-116"/>
17
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-1155" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#fecaca">Outside World</text>
18
18
  </g>
19
19
  <g id="clust3" class="cluster">
20
20
  <title>cluster_eng</title>
21
- <path fill="#422006" stroke="#a16207" stroke-width="2" d="M565.62,-148.13C565.62,-148.13 746.62,-148.13 746.62,-148.13 752.62,-148.13 758.62,-154.13 758.62,-160.13 758.62,-160.13 758.62,-714.13 758.62,-714.13 758.62,-720.13 752.62,-726.13 746.62,-726.13 746.62,-726.13 565.62,-726.13 565.62,-726.13 559.62,-726.13 553.62,-720.13 553.62,-714.13 553.62,-714.13 553.62,-160.13 553.62,-160.13 553.62,-154.13 559.62,-148.13 565.62,-148.13"/>
22
- <text xml:space="preserve" text-anchor="middle" x="656.12" y="-703.13" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#fde68a">Extrospection Engine</text>
21
+ <path fill="#422006" stroke="#a16207" stroke-width="2" d="M570.25,-8C570.25,-8 762,-8 762,-8 768,-8 774,-14 774,-20 774,-20 774,-1197 774,-1197 774,-1203 768,-1209 762,-1209 762,-1209 570.25,-1209 570.25,-1209 564.25,-1209 558.25,-1203 558.25,-1197 558.25,-1197 558.25,-20 558.25,-20 558.25,-14 564.25,-8 570.25,-8"/>
22
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-1186" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#fde68a">Extrospection Engine</text>
23
23
  </g>
24
24
  <!-- Host -->
25
25
  <g id="node1" class="node">
26
26
  <title>Host</title>
27
- <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M132.88,-814.13C132.88,-814.13 42.62,-814.13 42.62,-814.13 36.62,-814.13 30.62,-808.13 30.62,-802.13 30.62,-802.13 30.62,-790.13 30.62,-790.13 30.62,-784.13 36.62,-778.13 42.62,-778.13 42.62,-778.13 132.88,-778.13 132.88,-778.13 138.88,-778.13 144.88,-784.13 144.88,-790.13 144.88,-790.13 144.88,-802.13 144.88,-802.13 144.88,-808.13 138.88,-814.13 132.88,-814.13"/>
28
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-799.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">host</text>
29
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-785.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">uname · distro · arch</text>
27
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M133.62,-727C133.62,-727 43.38,-727 43.38,-727 37.38,-727 31.38,-721 31.38,-715 31.38,-715 31.38,-703 31.38,-703 31.38,-697 37.38,-691 43.38,-691 43.38,-691 133.62,-691 133.62,-691 139.62,-691 145.62,-697 145.62,-703 145.62,-703 145.62,-715 145.62,-715 145.62,-721 139.62,-727 133.62,-727"/>
28
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-712.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">host</text>
29
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-698.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">uname · distro · arch</text>
30
30
  </g>
31
31
  <!-- Snap -->
32
- <g id="node9" class="node">
32
+ <g id="node15" class="node">
33
33
  <title>Snap</title>
34
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M710.5,-686.38C710.5,-686.38 600.75,-686.38 600.75,-686.38 594.75,-686.38 588.75,-680.38 588.75,-674.38 588.75,-674.38 588.75,-649.88 588.75,-649.88 588.75,-643.88 594.75,-637.88 600.75,-637.88 600.75,-637.88 710.5,-637.88 710.5,-637.88 716.5,-637.88 722.5,-643.88 722.5,-649.88 722.5,-649.88 722.5,-674.38 722.5,-674.38 722.5,-680.38 716.5,-686.38 710.5,-686.38"/>
35
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-671.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_snapshot</text>
36
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-658.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">probe_host/net/toolchain</text>
37
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-644.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">probe_repo/env/rf/web</text>
34
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M743.5,-744.75C743.5,-744.75 588.75,-744.75 588.75,-744.75 582.75,-744.75 576.75,-738.75 576.75,-732.75 576.75,-732.75 576.75,-681.25 576.75,-681.25 576.75,-675.25 582.75,-669.25 588.75,-669.25 588.75,-669.25 743.5,-669.25 743.5,-669.25 749.5,-669.25 755.5,-675.25 755.5,-681.25 755.5,-681.25 755.5,-732.75 755.5,-732.75 755.5,-738.75 749.5,-744.75 743.5,-744.75"/>
35
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-730.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_snapshot</text>
36
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-716.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">probe_host/net/toolchain/repo/env</text>
37
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-703.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">rf/web/osint/serial/telecomm</text>
38
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-689.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">packet/vision/voice</text>
39
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-676.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">(auto = host/repo/env only)</text>
38
40
  </g>
39
41
  <!-- Host&#45;&gt;Snap -->
40
42
  <g id="edge1" class="edge">
41
43
  <title>Host&#45;&gt;Snap</title>
42
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M145.28,-787.96C227.97,-775.36 386.34,-748.76 517.75,-712.13 539.51,-706.07 562.74,-698.15 583.77,-690.41"/>
43
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="584.59,-693.1 591.11,-687.68 582.63,-687.85 584.59,-693.1"/>
44
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M146.27,-708.8C244.03,-708.46 445.3,-707.76 566.41,-707.34"/>
45
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="566.12,-710.14 574.11,-707.32 566.1,-704.54 566.12,-710.14"/>
44
46
  </g>
45
47
  <!-- Net -->
46
48
  <g id="node2" class="node">
47
49
  <title>Net</title>
48
- <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M144.5,-742.13C144.5,-742.13 31,-742.13 31,-742.13 25,-742.13 19,-736.13 19,-730.13 19,-730.13 19,-718.13 19,-718.13 19,-712.13 25,-706.13 31,-706.13 31,-706.13 144.5,-706.13 144.5,-706.13 150.5,-706.13 156.5,-712.13 156.5,-718.13 156.5,-718.13 156.5,-730.13 156.5,-730.13 156.5,-736.13 150.5,-742.13 144.5,-742.13"/>
49
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-727.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">net</text>
50
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-713.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">interfaces · listening ports</text>
50
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M145.25,-799C145.25,-799 31.75,-799 31.75,-799 25.75,-799 19.75,-793 19.75,-787 19.75,-787 19.75,-775 19.75,-775 19.75,-769 25.75,-763 31.75,-763 31.75,-763 145.25,-763 145.25,-763 151.25,-763 157.25,-769 157.25,-775 157.25,-775 157.25,-787 157.25,-787 157.25,-793 151.25,-799 145.25,-799"/>
51
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-784.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">net</text>
52
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-770.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">interfaces · listening ports</text>
51
53
  </g>
52
54
  <!-- Net&#45;&gt;Snap -->
53
55
  <g id="edge2" class="edge">
54
56
  <title>Net&#45;&gt;Snap</title>
55
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M157.17,-717.72C241.9,-709.65 390.59,-695.01 517.75,-680.13 537.4,-677.83 558.61,-675.15 578.33,-672.56"/>
56
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="578.67,-675.34 586.24,-671.52 577.94,-669.79 578.67,-675.34"/>
57
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M157.85,-775.79C242.84,-768.87 392.23,-755.23 519.25,-736 534.58,-733.68 550.74,-730.85 566.5,-727.88"/>
58
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="566.99,-730.64 574.32,-726.39 565.94,-725.14 566.99,-730.64"/>
57
59
  </g>
58
60
  <!-- Tool -->
59
61
  <g id="node3" class="node">
60
62
  <title>Tool</title>
61
- <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M135.88,-670.13C135.88,-670.13 39.62,-670.13 39.62,-670.13 33.62,-670.13 27.62,-664.13 27.62,-658.13 27.62,-658.13 27.62,-646.13 27.62,-646.13 27.62,-640.13 33.62,-634.13 39.62,-634.13 39.62,-634.13 135.88,-634.13 135.88,-634.13 141.88,-634.13 147.88,-640.13 147.88,-646.13 147.88,-646.13 147.88,-658.13 147.88,-658.13 147.88,-664.13 141.88,-670.13 135.88,-670.13"/>
62
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-655.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">toolchain</text>
63
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-641.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">nmap · burp · msf · git</text>
63
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M144.12,-655.25C144.12,-655.25 32.88,-655.25 32.88,-655.25 26.88,-655.25 20.88,-649.25 20.88,-643.25 20.88,-643.25 20.88,-618.75 20.88,-618.75 20.88,-612.75 26.88,-606.75 32.88,-606.75 32.88,-606.75 144.12,-606.75 144.12,-606.75 150.12,-606.75 156.12,-612.75 156.12,-618.75 156.12,-618.75 156.12,-643.25 156.12,-643.25 156.12,-649.25 150.12,-655.25 144.12,-655.25"/>
64
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-640.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">toolchain (presence)</text>
65
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-627.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">nmap/git (safe &#45;&#45;ver)</text>
66
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-613.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">burp/msf/gqrx PATH only</text>
64
67
  </g>
65
68
  <!-- Drift -->
66
- <g id="node10" class="node">
69
+ <g id="node16" class="node">
67
70
  <title>Drift</title>
68
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M691.38,-602.13C691.38,-602.13 619.88,-602.13 619.88,-602.13 613.88,-602.13 607.88,-596.13 607.88,-590.13 607.88,-590.13 607.88,-578.13 607.88,-578.13 607.88,-572.13 613.88,-566.13 619.88,-566.13 619.88,-566.13 691.38,-566.13 691.38,-566.13 697.38,-566.13 703.38,-572.13 703.38,-578.13 703.38,-578.13 703.38,-590.13 703.38,-590.13 703.38,-596.13 697.38,-602.13 691.38,-602.13"/>
69
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-587.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_drift</text>
70
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-573.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">delta vs baseline</text>
71
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M701.88,-633C701.88,-633 630.38,-633 630.38,-633 624.38,-633 618.38,-627 618.38,-621 618.38,-621 618.38,-609 618.38,-609 618.38,-603 624.38,-597 630.38,-597 630.38,-597 701.88,-597 701.88,-597 707.88,-597 713.88,-603 713.88,-609 713.88,-609 713.88,-621 713.88,-621 713.88,-627 707.88,-633 701.88,-633"/>
72
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-618.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_drift</text>
73
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-604.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">delta vs baseline</text>
71
74
  </g>
72
75
  <!-- Tool&#45;&gt;Drift -->
73
76
  <g id="edge3" class="edge">
74
77
  <title>Tool&#45;&gt;Drift</title>
75
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M148.31,-648.32C231.36,-642.58 386.53,-630.3 517.75,-611.13 544.2,-607.27 573.28,-601.72 597.81,-596.66"/>
76
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="598.13,-599.45 605.39,-595.07 596.99,-593.97 598.13,-599.45"/>
78
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M156.66,-629.13C270.98,-625.96 501.36,-619.55 608.26,-616.58"/>
79
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="608.01,-619.39 615.93,-616.37 607.86,-613.79 608.01,-619.39"/>
77
80
  </g>
78
81
  <!-- Repo -->
79
82
  <g id="node4" class="node">
80
83
  <title>Repo</title>
81
- <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M141.12,-598.13C141.12,-598.13 34.38,-598.13 34.38,-598.13 28.38,-598.13 22.38,-592.13 22.38,-586.13 22.38,-586.13 22.38,-574.13 22.38,-574.13 22.38,-568.13 28.38,-562.13 34.38,-562.13 34.38,-562.13 141.12,-562.13 141.12,-562.13 147.12,-562.13 153.12,-568.13 153.12,-574.13 153.12,-574.13 153.12,-586.13 153.12,-586.13 153.12,-592.13 147.12,-598.13 141.12,-598.13"/>
82
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-583.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">repo · env</text>
83
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-569.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">HEAD · dirty · ruby/gem</text>
84
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M141.88,-571C141.88,-571 35.12,-571 35.12,-571 29.12,-571 23.12,-565 23.12,-559 23.12,-559 23.12,-547 23.12,-547 23.12,-541 29.12,-535 35.12,-535 35.12,-535 141.88,-535 141.88,-535 147.88,-535 153.88,-541 153.88,-547 153.88,-547 153.88,-559 153.88,-559 153.88,-565 147.88,-571 141.88,-571"/>
85
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-556.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">repo · env</text>
86
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-542.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">HEAD · dirty · ruby/gem</text>
84
87
  </g>
85
88
  <!-- Repo&#45;&gt;Drift -->
86
89
  <g id="edge4" class="edge">
87
90
  <title>Repo&#45;&gt;Drift</title>
88
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M153.66,-580.59C265.17,-581.38 491.32,-582.98 597.34,-583.73"/>
89
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="597.23,-586.53 605.25,-583.78 597.27,-580.93 597.23,-586.53"/>
91
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M154.41,-559.99C267.89,-572.21 500.49,-597.27 608.14,-608.86"/>
92
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="607.64,-611.62 615.89,-609.7 608.24,-606.06 607.64,-611.62"/>
90
93
  </g>
91
94
  <!-- RFhw -->
92
95
  <g id="node5" class="node">
93
96
  <title>RFhw</title>
94
- <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M136.62,-526.38C136.62,-526.38 38.88,-526.38 38.88,-526.38 32.88,-526.38 26.88,-520.38 26.88,-514.38 26.88,-514.38 26.88,-489.88 26.88,-489.88 26.88,-483.88 32.88,-477.88 38.88,-477.88 38.88,-477.88 136.62,-477.88 136.62,-477.88 142.62,-477.88 148.62,-483.88 148.62,-489.88 148.62,-489.88 148.62,-514.38 148.62,-514.38 148.62,-520.38 142.62,-526.38 136.62,-526.38"/>
95
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-511.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">rf &#160;📡</text>
96
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-498.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">rtl&#45;sdr · hackrf · flipper</text>
97
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-484.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">gqrx sock · serial devs</text>
97
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M137.38,-499.25C137.38,-499.25 39.62,-499.25 39.62,-499.25 33.62,-499.25 27.62,-493.25 27.62,-487.25 27.62,-487.25 27.62,-462.75 27.62,-462.75 27.62,-456.75 33.62,-450.75 39.62,-450.75 39.62,-450.75 137.38,-450.75 137.38,-450.75 143.38,-450.75 149.38,-456.75 149.38,-462.75 149.38,-462.75 149.38,-487.25 149.38,-487.25 149.38,-493.25 143.38,-499.25 137.38,-499.25"/>
98
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-484.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">rf &#160;📡</text>
99
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-471.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">rtl&#45;sdr · hackrf · flipper</text>
100
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-457.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">gqrx sock · serial devs</text>
98
101
  </g>
99
102
  <!-- Obs -->
100
- <g id="node11" class="node">
103
+ <g id="node17" class="node">
101
104
  <title>Obs</title>
102
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M724.75,-530.38C724.75,-530.38 586.5,-530.38 586.5,-530.38 580.5,-530.38 574.5,-524.38 574.5,-518.38 574.5,-518.38 574.5,-493.88 574.5,-493.88 574.5,-487.88 580.5,-481.88 586.5,-481.88 586.5,-481.88 724.75,-481.88 724.75,-481.88 730.75,-481.88 736.75,-487.88 736.75,-493.88 736.75,-493.88 736.75,-518.38 736.75,-518.38 736.75,-524.38 730.75,-530.38 724.75,-530.38"/>
103
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-515.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_observe</text>
104
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-502.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">recon · vuln · intel</text>
105
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-488.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">target · network · env · rf · web</text>
105
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M722.5,-560.75C722.5,-560.75 609.75,-560.75 609.75,-560.75 603.75,-560.75 597.75,-554.75 597.75,-548.75 597.75,-548.75 597.75,-497.25 597.75,-497.25 597.75,-491.25 603.75,-485.25 609.75,-485.25 609.75,-485.25 722.5,-485.25 722.5,-485.25 728.5,-485.25 734.5,-491.25 734.5,-497.25 734.5,-497.25 734.5,-548.75 734.5,-548.75 734.5,-554.75 728.5,-560.75 722.5,-560.75"/>
106
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-546.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_observe</text>
107
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-532.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">recon · vuln · intel · target</text>
108
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-519.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">network · env · rf · web</text>
109
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-505.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">osint · serial · telecomm</text>
110
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-492.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">packet · vision · voice</text>
106
111
  </g>
107
112
  <!-- RFhw&#45;&gt;Obs -->
108
113
  <g id="edge5" class="edge">
109
114
  <title>RFhw&#45;&gt;Obs</title>
110
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M149.31,-502.56C248.91,-503.27 447.82,-504.67 564.16,-505.49"/>
111
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="564.13,-508.29 572.15,-505.55 564.17,-502.69 564.13,-508.29"/>
112
- <text xml:space="preserve" text-anchor="middle" x="327.75" y="-506.28" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">probe_rf</text>
115
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M150.01,-480.05C255.19,-488.82 471.56,-506.86 587.59,-516.53"/>
116
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="587.3,-519.32 595.51,-517.19 587.77,-513.74 587.3,-519.32"/>
117
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-503.05" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">probe_rf</text>
118
+ </g>
119
+ <!-- RFTune -->
120
+ <g id="node21" class="node">
121
+ <title>RFTune</title>
122
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M754,-449.25C754,-449.25 578.25,-449.25 578.25,-449.25 572.25,-449.25 566.25,-443.25 566.25,-437.25 566.25,-437.25 566.25,-412.75 566.25,-412.75 566.25,-406.75 572.25,-400.75 578.25,-400.75 578.25,-400.75 754,-400.75 754,-400.75 760,-400.75 766,-406.75 766,-412.75 766,-412.75 766,-437.25 766,-437.25 766,-443.25 760,-449.25 754,-449.25"/>
123
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-434.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_rf_tune &#160;📡</text>
124
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-421.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">tune GQRX · demod · strength</text>
125
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-407.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">RDS PI/PS/RadioText → now_playing</text>
126
+ </g>
127
+ <!-- RFhw&#45;&gt;RFTune -->
128
+ <g id="edge6" class="edge">
129
+ <title>RFhw&#45;&gt;RFTune</title>
130
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M150.01,-469.74C245.91,-461.41 434.24,-445.06 554.67,-434.59"/>
131
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="554.64,-437.41 562.37,-433.93 554.16,-431.83 554.64,-437.41"/>
132
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-462.48" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">tune · RDS</text>
113
133
  </g>
114
134
  <!-- Web -->
115
135
  <g id="node6" class="node">
116
136
  <title>Web</title>
117
- <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M144.88,-370.38C144.88,-370.38 30.62,-370.38 30.62,-370.38 24.62,-370.38 18.62,-364.38 18.62,-358.38 18.62,-358.38 18.62,-333.88 18.62,-333.88 18.62,-327.88 24.62,-321.88 30.62,-321.88 30.62,-321.88 144.88,-321.88 144.88,-321.88 150.88,-321.88 156.88,-327.88 156.88,-333.88 156.88,-333.88 156.88,-358.38 156.88,-358.38 156.88,-364.38 150.88,-370.38 144.88,-370.38"/>
118
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-355.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">web &#160;🌐</text>
119
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-342.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">anchors · targets</text>
120
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-328.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">rendered DOM · TLS cert</text>
137
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M145.62,-968.25C145.62,-968.25 31.38,-968.25 31.38,-968.25 25.38,-968.25 19.38,-962.25 19.38,-956.25 19.38,-956.25 19.38,-931.75 19.38,-931.75 19.38,-925.75 25.38,-919.75 31.38,-919.75 31.38,-919.75 145.62,-919.75 145.62,-919.75 151.62,-919.75 157.62,-925.75 157.62,-931.75 157.62,-931.75 157.62,-956.25 157.62,-956.25 157.62,-962.25 151.62,-968.25 145.62,-968.25"/>
138
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-953.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">web &#160;🌐</text>
139
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-940.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">anchors · targets</text>
140
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-926.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">rendered DOM · TLS cert</text>
121
141
  </g>
122
142
  <!-- TB -->
123
- <g id="node8" class="node">
143
+ <g id="node14" class="node">
124
144
  <title>TB</title>
125
- <path fill="#7dd3fc" stroke="#334155" stroke-width="2" d="M389,-352.38C389,-352.38 266.5,-352.38 266.5,-352.38 260.5,-352.38 254.5,-346.38 254.5,-340.38 254.5,-340.38 254.5,-315.88 254.5,-315.88 254.5,-309.88 260.5,-303.88 266.5,-303.88 266.5,-303.88 389,-303.88 389,-303.88 395,-303.88 401,-309.88 401,-315.88 401,-315.88 401,-340.38 401,-340.38 401,-346.38 395,-352.38 389,-352.38"/>
126
- <text xml:space="preserve" text-anchor="middle" x="327.75" y="-337.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">PWN::Plugins::</text>
127
- <text xml:space="preserve" text-anchor="middle" x="327.75" y="-324.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">TransparentBrowser</text>
128
- <text xml:space="preserve" text-anchor="middle" x="327.75" y="-310.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">:headless (→ :rest fallback)</text>
145
+ <path fill="#7dd3fc" stroke="#334155" stroke-width="2" d="M390.5,-967.25C390.5,-967.25 268,-967.25 268,-967.25 262,-967.25 256,-961.25 256,-955.25 256,-955.25 256,-930.75 256,-930.75 256,-924.75 262,-918.75 268,-918.75 268,-918.75 390.5,-918.75 390.5,-918.75 396.5,-918.75 402.5,-924.75 402.5,-930.75 402.5,-930.75 402.5,-955.25 402.5,-955.25 402.5,-961.25 396.5,-967.25 390.5,-967.25"/>
146
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-952.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">PWN::Plugins::</text>
147
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-939.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">TransparentBrowser</text>
148
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-925.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">:headless (→ :rest fallback)</text>
129
149
  </g>
130
150
  <!-- Web&#45;&gt;TB -->
131
- <g id="edge7" class="edge">
151
+ <g id="edge8" class="edge">
132
152
  <title>Web&#45;&gt;TB</title>
133
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M157.27,-340.95C184.3,-338.91 215.58,-336.54 243.87,-334.4"/>
134
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="244,-337.2 251.77,-333.8 243.58,-331.62 244,-337.2"/>
153
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M158.24,-943.71C185.35,-943.6 216.73,-943.47 245.1,-943.35"/>
154
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="245.05,-946.15 253.03,-943.32 245.02,-940.55 245.05,-946.15"/>
135
155
  </g>
136
156
  <!-- Feeds -->
137
157
  <g id="node7" class="node">
138
158
  <title>Feeds</title>
139
- <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M147.5,-442.13C147.5,-442.13 28,-442.13 28,-442.13 22,-442.13 16,-436.13 16,-430.13 16,-430.13 16,-418.13 16,-418.13 16,-412.13 22,-406.13 28,-406.13 28,-406.13 147.5,-406.13 147.5,-406.13 153.5,-406.13 159.5,-412.13 159.5,-418.13 159.5,-418.13 159.5,-430.13 159.5,-430.13 159.5,-436.13 153.5,-442.13 147.5,-442.13"/>
140
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-427.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">intel feeds</text>
141
- <text xml:space="preserve" text-anchor="middle" x="87.75" y="-413.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">NVD · CIRCL · Exploit&#45;DB</text>
159
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M148.25,-160C148.25,-160 28.75,-160 28.75,-160 22.75,-160 16.75,-154 16.75,-148 16.75,-148 16.75,-136 16.75,-136 16.75,-130 22.75,-124 28.75,-124 28.75,-124 148.25,-124 148.25,-124 154.25,-124 160.25,-130 160.25,-136 160.25,-136 160.25,-148 160.25,-148 160.25,-154 154.25,-160 148.25,-160"/>
160
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-145.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">intel feeds</text>
161
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-131.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">NVD · CIRCL · Exploit&#45;DB</text>
142
162
  </g>
143
163
  <!-- Intel -->
144
- <g id="node12" class="node">
164
+ <g id="node18" class="node">
145
165
  <title>Intel</title>
146
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M700.38,-446.13C700.38,-446.13 610.88,-446.13 610.88,-446.13 604.88,-446.13 598.88,-440.13 598.88,-434.13 598.88,-434.13 598.88,-422.13 598.88,-422.13 598.88,-416.13 604.88,-410.13 610.88,-410.13 610.88,-410.13 700.38,-410.13 700.38,-410.13 706.38,-410.13 712.38,-416.13 712.38,-422.13 712.38,-422.13 712.38,-434.13 712.38,-434.13 712.38,-440.13 706.38,-446.13 700.38,-446.13"/>
147
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-431.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_intel</text>
148
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-417.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">CVE / exploit lookup</text>
166
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M710.88,-136C710.88,-136 621.38,-136 621.38,-136 615.38,-136 609.38,-130 609.38,-124 609.38,-124 609.38,-112 609.38,-112 609.38,-106 615.38,-100 621.38,-100 621.38,-100 710.88,-100 710.88,-100 716.88,-100 722.88,-106 722.88,-112 722.88,-112 722.88,-124 722.88,-124 722.88,-130 716.88,-136 710.88,-136"/>
167
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-121.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_intel</text>
168
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-107.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">CVE / exploit lookup</text>
149
169
  </g>
150
170
  <!-- Feeds&#45;&gt;Intel -->
151
- <g id="edge6" class="edge">
171
+ <g id="edge7" class="edge">
152
172
  <title>Feeds&#45;&gt;Intel</title>
153
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M160.13,-424.64C270.63,-425.42 481.49,-426.91 588.62,-427.67"/>
154
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="588.36,-430.47 596.38,-427.72 588.4,-424.87 588.36,-430.47"/>
173
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M160.92,-128.36C190.26,-123.41 224.64,-118.43 256,-116 376.79,-106.63 518.24,-110.63 599.2,-114.35"/>
174
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="598.68,-117.13 606.8,-114.71 598.94,-111.53 598.68,-117.13"/>
175
+ </g>
176
+ <!-- OSINT -->
177
+ <g id="node8" class="node">
178
+ <title>OSINT</title>
179
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M135.88,-1138.25C135.88,-1138.25 41.12,-1138.25 41.12,-1138.25 35.12,-1138.25 29.12,-1132.25 29.12,-1126.25 29.12,-1126.25 29.12,-1101.75 29.12,-1101.75 29.12,-1095.75 35.12,-1089.75 41.12,-1089.75 41.12,-1089.75 135.88,-1089.75 135.88,-1089.75 141.88,-1089.75 147.88,-1095.75 147.88,-1101.75 147.88,-1101.75 147.88,-1126.25 147.88,-1126.25 147.88,-1132.25 141.88,-1138.25 135.88,-1138.25"/>
180
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-1123.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">osint &#160;🕵️</text>
181
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-1110.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">phone · FCC · patent</text>
182
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-1096.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">IP/ASN · CT · person</text>
183
+ </g>
184
+ <!-- OsintT -->
185
+ <g id="node22" class="node">
186
+ <title>OsintT</title>
187
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M733.75,-1169.25C733.75,-1169.25 598.5,-1169.25 598.5,-1169.25 592.5,-1169.25 586.5,-1163.25 586.5,-1157.25 586.5,-1157.25 586.5,-1132.75 586.5,-1132.75 586.5,-1126.75 592.5,-1120.75 598.5,-1120.75 598.5,-1120.75 733.75,-1120.75 733.75,-1120.75 739.75,-1120.75 745.75,-1126.75 745.75,-1132.75 745.75,-1132.75 745.75,-1157.25 745.75,-1157.25 745.75,-1163.25 739.75,-1169.25 733.75,-1169.25"/>
188
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-1154.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_osint &#160;🕵️</text>
189
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-1141.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">public APIs aggregate</text>
190
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-1127.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">phone · FCC · patent · person</text>
191
+ </g>
192
+ <!-- OSINT&#45;&gt;OsintT -->
193
+ <g id="edge19" class="edge">
194
+ <title>OSINT&#45;&gt;OsintT</title>
195
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M148.4,-1117.17C249.26,-1122.6 455.68,-1133.72 574.84,-1140.14"/>
196
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="574.58,-1142.93 582.71,-1140.56 574.88,-1137.34 574.58,-1142.93"/>
197
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-1132.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">public APIs</text>
198
+ </g>
199
+ <!-- Serial -->
200
+ <g id="node9" class="node">
201
+ <title>Serial</title>
202
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M131.75,-1053.25C131.75,-1053.25 45.25,-1053.25 45.25,-1053.25 39.25,-1053.25 33.25,-1047.25 33.25,-1041.25 33.25,-1041.25 33.25,-1016.75 33.25,-1016.75 33.25,-1010.75 39.25,-1004.75 45.25,-1004.75 45.25,-1004.75 131.75,-1004.75 131.75,-1004.75 137.75,-1004.75 143.75,-1010.75 143.75,-1016.75 143.75,-1016.75 143.75,-1041.25 143.75,-1041.25 143.75,-1047.25 137.75,-1053.25 131.75,-1053.25"/>
203
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-1038.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">serial &#160;🔌</text>
204
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-1025.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">ttyUSB/ACM · by&#45;id</text>
205
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-1011.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">UART / AT modem</text>
206
+ </g>
207
+ <!-- SerT -->
208
+ <g id="node23" class="node">
209
+ <title>SerT</title>
210
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M713.88,-999.25C713.88,-999.25 618.38,-999.25 618.38,-999.25 612.38,-999.25 606.38,-993.25 606.38,-987.25 606.38,-987.25 606.38,-962.75 606.38,-962.75 606.38,-956.75 612.38,-950.75 618.38,-950.75 618.38,-950.75 713.88,-950.75 713.88,-950.75 719.88,-950.75 725.88,-956.75 725.88,-962.75 725.88,-962.75 725.88,-987.25 725.88,-987.25 725.88,-993.25 719.88,-999.25 713.88,-999.25"/>
211
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-984.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_serial &#160;🔌</text>
212
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-971.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">open · payload · drain</text>
213
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-957.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">PWN::Plugins::Serial</text>
214
+ </g>
215
+ <!-- Serial&#45;&gt;SerT -->
216
+ <g id="edge20" class="edge">
217
+ <title>Serial&#45;&gt;SerT</title>
218
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M144.14,-1024.54C225.81,-1017.79 384.53,-1004.34 519.25,-991 543.87,-988.56 570.81,-985.67 594.76,-983.02"/>
219
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="594.89,-985.82 602.53,-982.16 594.27,-980.26 594.89,-985.82"/>
220
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-1016.83" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">UART I/O</text>
221
+ </g>
222
+ <!-- Telco -->
223
+ <g id="node10" class="node">
224
+ <title>Telco</title>
225
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M132.12,-883.25C132.12,-883.25 44.88,-883.25 44.88,-883.25 38.88,-883.25 32.88,-877.25 32.88,-871.25 32.88,-871.25 32.88,-846.75 32.88,-846.75 32.88,-840.75 38.88,-834.75 44.88,-834.75 44.88,-834.75 132.12,-834.75 132.12,-834.75 138.12,-834.75 144.12,-840.75 144.12,-846.75 144.12,-846.75 144.12,-871.25 144.12,-871.25 144.12,-877.25 138.12,-883.25 132.12,-883.25"/>
226
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-868.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">telecomm &#160;☎️</text>
227
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-855.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">BareSIP · SIP ports</text>
228
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-841.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">PSTN / VoIP</text>
229
+ </g>
230
+ <!-- TelT -->
231
+ <g id="node24" class="node">
232
+ <title>TelT</title>
233
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M710.12,-829.25C710.12,-829.25 622.12,-829.25 622.12,-829.25 616.12,-829.25 610.12,-823.25 610.12,-817.25 610.12,-817.25 610.12,-792.75 610.12,-792.75 610.12,-786.75 616.12,-780.75 622.12,-780.75 622.12,-780.75 710.12,-780.75 710.12,-780.75 716.12,-780.75 722.12,-786.75 722.12,-792.75 722.12,-792.75 722.12,-817.25 722.12,-817.25 722.12,-823.25 716.12,-829.25 710.12,-829.25"/>
234
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-814.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_telecomm &#160;☎️</text>
235
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-801.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">BareSIP status/dial</text>
236
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-787.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">inventory SIP</text>
237
+ </g>
238
+ <!-- Telco&#45;&gt;TelT -->
239
+ <g id="edge21" class="edge">
240
+ <title>Telco&#45;&gt;TelT</title>
241
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M144.69,-853.82C251.01,-843.85 483.8,-822.01 598.53,-811.25"/>
242
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="598.54,-814.06 606.24,-810.52 598.01,-808.48 598.54,-814.06"/>
243
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-845.32" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">SIP/HTTP</text>
244
+ </g>
245
+ <!-- Pkt -->
246
+ <g id="node11" class="node">
247
+ <title>Pkt</title>
248
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M124.25,-414.25C124.25,-414.25 52.75,-414.25 52.75,-414.25 46.75,-414.25 40.75,-408.25 40.75,-402.25 40.75,-402.25 40.75,-377.75 40.75,-377.75 40.75,-371.75 46.75,-365.75 52.75,-365.75 52.75,-365.75 124.25,-365.75 124.25,-365.75 130.25,-365.75 136.25,-371.75 136.25,-377.75 136.25,-377.75 136.25,-402.25 136.25,-402.25 136.25,-408.25 130.25,-414.25 124.25,-414.25"/>
249
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-399.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">packet &#160;📦</text>
250
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-386.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">tshark · tcpdump</text>
251
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-372.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">pcap summarise</text>
252
+ </g>
253
+ <!-- PktT -->
254
+ <g id="node25" class="node">
255
+ <title>PktT</title>
256
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M724,-364.25C724,-364.25 608.25,-364.25 608.25,-364.25 602.25,-364.25 596.25,-358.25 596.25,-352.25 596.25,-352.25 596.25,-327.75 596.25,-327.75 596.25,-321.75 602.25,-315.75 608.25,-315.75 608.25,-315.75 724,-315.75 724,-315.75 730,-315.75 736,-321.75 736,-327.75 736,-327.75 736,-352.25 736,-352.25 736,-358.25 730,-364.25 724,-364.25"/>
257
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-349.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_packet &#160;📦</text>
258
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-336.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">capture · summarise pcap</text>
259
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-322.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">tshark/PacketFu</text>
260
+ </g>
261
+ <!-- Pkt&#45;&gt;PktT -->
262
+ <g id="edge22" class="edge">
263
+ <title>Pkt&#45;&gt;PktT</title>
264
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M136.61,-385.91C234.87,-377.37 462.67,-357.59 584.63,-346.99"/>
265
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="584.64,-349.8 592.37,-346.32 584.15,-344.22 584.64,-349.8"/>
266
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-377.48" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">capture</text>
267
+ </g>
268
+ <!-- Vis -->
269
+ <g id="node12" class="node">
270
+ <title>Vis</title>
271
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M125.75,-329.25C125.75,-329.25 51.25,-329.25 51.25,-329.25 45.25,-329.25 39.25,-323.25 39.25,-317.25 39.25,-317.25 39.25,-292.75 39.25,-292.75 39.25,-286.75 45.25,-280.75 51.25,-280.75 51.25,-280.75 125.75,-280.75 125.75,-280.75 131.75,-280.75 137.75,-286.75 137.75,-292.75 137.75,-292.75 137.75,-317.25 137.75,-317.25 137.75,-323.25 131.75,-329.25 125.75,-329.25"/>
272
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-314.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">vision &#160;👁</text>
273
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-301.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">tesseract OCR</text>
274
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-287.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">zbar QR/barcode</text>
275
+ </g>
276
+ <!-- VisT -->
277
+ <g id="node26" class="node">
278
+ <title>VisT</title>
279
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M708.25,-280C708.25,-280 624,-280 624,-280 618,-280 612,-274 612,-268 612,-268 612,-256 612,-256 612,-250 618,-244 624,-244 624,-244 708.25,-244 708.25,-244 714.25,-244 720.25,-250 720.25,-256 720.25,-256 720.25,-268 720.25,-268 720.25,-274 714.25,-280 708.25,-280"/>
280
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-265.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_vision &#160;👁</text>
281
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-251.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">OCR · barcode/QR</text>
282
+ </g>
283
+ <!-- Vis&#45;&gt;VisT -->
284
+ <g id="edge23" class="edge">
285
+ <title>Vis&#45;&gt;VisT</title>
286
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M138.32,-292.83C171.32,-285.18 216,-275.95 256,-271.5 377.05,-258.02 519.45,-258.34 600.32,-260.01"/>
287
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="600.23,-262.81 608.29,-260.19 600.35,-257.21 600.23,-262.81"/>
288
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-273.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">OCR</text>
289
+ </g>
290
+ <!-- Voice -->
291
+ <g id="node13" class="node">
292
+ <title>Voice</title>
293
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M149,-244.25C149,-244.25 28,-244.25 28,-244.25 22,-244.25 16,-238.25 16,-232.25 16,-232.25 16,-207.75 16,-207.75 16,-201.75 22,-195.75 28,-195.75 28,-195.75 149,-195.75 149,-195.75 155,-195.75 161,-201.75 161,-207.75 161,-207.75 161,-232.25 161,-232.25 161,-238.25 155,-244.25 149,-244.25"/>
294
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-229.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">voice &#160;🔊</text>
295
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-216.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">espeak TTS · whisper STT</text>
296
+ <text xml:space="preserve" text-anchor="middle" x="88.5" y="-202.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">sox / festival</text>
297
+ </g>
298
+ <!-- VoxT -->
299
+ <g id="node27" class="node">
300
+ <title>VoxT</title>
301
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M713.88,-208C713.88,-208 618.38,-208 618.38,-208 612.38,-208 606.38,-202 606.38,-196 606.38,-196 606.38,-184 606.38,-184 606.38,-178 612.38,-172 618.38,-172 618.38,-172 713.88,-172 713.88,-172 719.88,-172 725.88,-178 725.88,-184 725.88,-184 725.88,-196 725.88,-196 725.88,-202 719.88,-208 713.88,-208"/>
302
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-193.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_voice &#160;🔊</text>
303
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-179.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">TTS · STT · inventory</text>
304
+ </g>
305
+ <!-- Voice&#45;&gt;VoxT -->
306
+ <g id="edge24" class="edge">
307
+ <title>Voice&#45;&gt;VoxT</title>
308
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M161.61,-203.31C190.75,-197.37 224.81,-191.42 256,-188.5 374.49,-177.39 513.13,-181.47 594.79,-185.61"/>
309
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="594.52,-188.4 602.66,-186.02 594.81,-182.81 594.52,-188.4"/>
310
+ <text xml:space="preserve" text-anchor="middle" x="329.25" y="-190.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">TTS/STT</text>
155
311
  </g>
156
312
  <!-- TB&#45;&gt;Snap -->
157
- <g id="edge8" class="edge">
313
+ <g id="edge9" class="edge">
158
314
  <title>TB&#45;&gt;Snap</title>
159
- <path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M341.97,-353.17C372.35,-408.51 452.34,-542.44 553.62,-620.13 561.45,-626.13 570.25,-631.43 579.31,-636.05"/>
160
- <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="577.87,-638.47 586.29,-639.43 580.31,-633.42 577.87,-638.47"/>
161
- <text xml:space="preserve" text-anchor="middle" x="482.88" y="-600.18" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">probe_web</text>
162
- <text xml:space="preserve" text-anchor="middle" x="482.88" y="-589.68" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">(opt&#45;in)</text>
315
+ <path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M365.91,-917.86C377.58,-909.63 390.6,-900.43 402.5,-892 454.45,-855.2 472.36,-852.06 519.25,-809 538.99,-790.87 537.33,-779.75 558.25,-763 563.65,-758.68 569.43,-754.54 575.4,-750.61"/>
316
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="576.73,-753.09 582,-746.44 573.74,-748.35 576.73,-753.09"/>
317
+ <text xml:space="preserve" text-anchor="middle" x="484.38" y="-873.04" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">probe_web</text>
318
+ <text xml:space="preserve" text-anchor="middle" x="484.38" y="-862.54" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">(opt&#45;in)</text>
163
319
  </g>
164
320
  <!-- Watch -->
165
- <g id="node13" class="node">
321
+ <g id="node19" class="node">
166
322
  <title>Watch</title>
167
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M712.75,-374.38C712.75,-374.38 598.5,-374.38 598.5,-374.38 592.5,-374.38 586.5,-368.38 586.5,-362.38 586.5,-362.38 586.5,-337.88 586.5,-337.88 586.5,-331.88 592.5,-325.88 598.5,-325.88 598.5,-325.88 712.75,-325.88 712.75,-325.88 718.75,-325.88 724.75,-331.88 724.75,-337.88 724.75,-337.88 724.75,-362.38 724.75,-362.38 724.75,-368.38 718.75,-374.38 712.75,-374.38"/>
168
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-359.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_watch</text>
169
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-346.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">render → DOM SHA&#45;256</text>
170
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-332.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">screenshot · TLS fp</text>
323
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M723.25,-914.25C723.25,-914.25 609,-914.25 609,-914.25 603,-914.25 597,-908.25 597,-902.25 597,-902.25 597,-877.75 597,-877.75 597,-871.75 603,-865.75 609,-865.75 609,-865.75 723.25,-865.75 723.25,-865.75 729.25,-865.75 735.25,-871.75 735.25,-877.75 735.25,-877.75 735.25,-902.25 735.25,-902.25 735.25,-908.25 729.25,-914.25 723.25,-914.25"/>
324
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-899.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_watch</text>
325
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-886.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">render → DOM SHA&#45;256</text>
326
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-872.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">screenshot · TLS fp</text>
171
327
  </g>
172
328
  <!-- TB&#45;&gt;Watch -->
173
- <g id="edge9" class="edge">
329
+ <g id="edge10" class="edge">
174
330
  <title>TB&#45;&gt;Watch</title>
175
- <path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M401.83,-320.32C417.07,-318.99 433.05,-317.82 448,-317.13 478.97,-315.71 486.97,-313.48 517.75,-317.13 536.96,-319.42 557.37,-323.44 576.4,-327.91"/>
176
- <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="575.58,-330.59 584.01,-329.75 576.89,-325.15 575.58,-330.59"/>
177
- <text xml:space="preserve" text-anchor="middle" x="482.88" y="-329.58" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">goto · text</text>
178
- <text xml:space="preserve" text-anchor="middle" x="482.88" y="-319.08" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">screenshot</text>
331
+ <path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M403.47,-957.47C438.91,-961.9 481.8,-963.44 519.25,-954 538.34,-949.19 540.42,-941.35 558.25,-933 568.65,-928.13 579.76,-923.28 590.74,-918.68"/>
332
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="591.77,-921.29 598.1,-915.64 589.63,-916.11 591.77,-921.29"/>
333
+ <text xml:space="preserve" text-anchor="middle" x="484.38" y="-973.41" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">goto · text</text>
334
+ <text xml:space="preserve" text-anchor="middle" x="484.38" y="-962.91" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">screenshot</text>
179
335
  </g>
180
336
  <!-- Verify -->
181
- <g id="node14" class="node">
337
+ <g id="node20" class="node">
182
338
  <title>Verify</title>
183
- <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M734.5,-289.38C734.5,-289.38 576.75,-289.38 576.75,-289.38 570.75,-289.38 564.75,-283.38 564.75,-277.38 564.75,-277.38 564.75,-252.88 564.75,-252.88 564.75,-246.88 570.75,-240.88 576.75,-240.88 576.75,-240.88 734.5,-240.88 734.5,-240.88 740.5,-240.88 746.5,-246.88 746.5,-252.88 746.5,-252.88 746.5,-277.38 746.5,-277.38 746.5,-283.38 740.5,-289.38 734.5,-289.38"/>
184
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-274.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_verify</text>
185
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-261.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">:cve · :version · :doc · :generic</text>
186
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-247.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">→ :confirmed | :refuted | :unknown</text>
339
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M745,-1084.25C745,-1084.25 587.25,-1084.25 587.25,-1084.25 581.25,-1084.25 575.25,-1078.25 575.25,-1072.25 575.25,-1072.25 575.25,-1047.75 575.25,-1047.75 575.25,-1041.75 581.25,-1035.75 587.25,-1035.75 587.25,-1035.75 745,-1035.75 745,-1035.75 751,-1035.75 757,-1041.75 757,-1047.75 757,-1047.75 757,-1072.25 757,-1072.25 757,-1078.25 751,-1084.25 745,-1084.25"/>
340
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-1069.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_verify</text>
341
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-1056.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">:cve · :version · :doc · :generic</text>
342
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-1042.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">→ :confirmed | :refuted | :unknown</text>
187
343
  </g>
188
344
  <!-- TB&#45;&gt;Verify -->
189
- <g id="edge10" class="edge">
345
+ <g id="edge11" class="edge">
190
346
  <title>TB&#45;&gt;Verify</title>
191
- <path fill="none" stroke="#38bdf8" stroke-width="2" d="M389.46,-302.94C407.97,-296.16 428.57,-289.51 448,-285.13 481.79,-277.53 519.33,-272.82 553.04,-269.9"/>
192
- <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="553.08,-272.7 560.82,-269.26 552.62,-267.12 553.08,-272.7"/>
193
- <text xml:space="preserve" text-anchor="middle" x="482.88" y="-297.58" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">render</text>
194
- <text xml:space="preserve" text-anchor="middle" x="482.88" y="-287.08" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">canonical source</text>
347
+ <path fill="none" stroke="#38bdf8" stroke-width="2" d="M390.28,-968.16C409.13,-975.79 430.08,-984 449.5,-991 489.13,-1005.29 533.36,-1019.71 571.41,-1031.65"/>
348
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="570.09,-1034.17 578.56,-1033.88 571.76,-1028.82 570.09,-1034.17"/>
349
+ <text xml:space="preserve" text-anchor="middle" x="484.38" y="-1025.71" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">render</text>
350
+ <text xml:space="preserve" text-anchor="middle" x="484.38" y="-1015.21" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">canonical source</text>
195
351
  </g>
196
352
  <!-- Store -->
197
- <g id="node16" class="node">
353
+ <g id="node29" class="node">
198
354
  <title>Store</title>
199
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1046.25,-478.82C1046.25,-481.24 1023.33,-483.2 995.12,-483.2 966.92,-483.2 944,-481.24 944,-478.82 944,-478.82 944,-439.45 944,-439.45 944,-437.03 966.92,-435.07 995.12,-435.07 1023.33,-435.07 1046.25,-437.03 1046.25,-439.45 1046.25,-439.45 1046.25,-478.82 1046.25,-478.82"/>
200
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M1046.25,-478.82C1046.25,-476.41 1023.33,-474.45 995.12,-474.45 966.92,-474.45 944,-476.41 944,-478.82"/>
201
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-462.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">~/.pwn/</text>
202
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-448.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extrospection.json</text>
355
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1066.5,-613.69C1066.5,-616.1 1043.58,-618.06 1015.38,-618.06 987.17,-618.06 964.25,-616.1 964.25,-613.69 964.25,-613.69 964.25,-574.31 964.25,-574.31 964.25,-571.9 987.17,-569.94 1015.38,-569.94 1043.58,-569.94 1066.5,-571.9 1066.5,-574.31 1066.5,-574.31 1066.5,-613.69 1066.5,-613.69"/>
356
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M1066.5,-613.69C1066.5,-611.27 1043.58,-609.31 1015.38,-609.31 987.17,-609.31 964.25,-611.27 964.25,-613.69"/>
357
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-597.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">~/.pwn/</text>
358
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-583.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extrospection.json</text>
203
359
  </g>
204
360
  <!-- Snap&#45;&gt;Store -->
205
- <g id="edge11" class="edge">
361
+ <g id="edge12" class="edge">
206
362
  <title>Snap&#45;&gt;Store</title>
207
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M721.21,-637.24C733.77,-631.92 746.73,-626.1 758.62,-620.13 811.23,-593.75 823.53,-585.15 872.25,-552.13 901.35,-532.42 932.86,-508.29 956.55,-489.55"/>
208
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="958.21,-491.81 962.73,-484.64 954.73,-487.43 958.21,-491.81"/>
363
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M756.1,-678.05C818.41,-657.77 899.97,-631.23 954.61,-613.45"/>
364
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="955.21,-616.2 961.95,-611.06 953.47,-610.87 955.21,-616.2"/>
209
365
  </g>
210
366
  <!-- Drift&#45;&gt;Store -->
211
- <g id="edge12" class="edge">
367
+ <g id="edge13" class="edge">
212
368
  <title>Drift&#45;&gt;Store</title>
213
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M704.06,-568.85C747.96,-554.47 814.91,-531.94 872.25,-510.13 892.61,-502.39 914.63,-493.37 934.29,-485.1"/>
214
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="935.34,-487.69 941.62,-481.99 933.16,-482.53 935.34,-487.69"/>
369
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M714.32,-612.15C776.44,-608.39 885.74,-601.78 953.88,-597.66"/>
370
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="953.84,-600.47 961.66,-597.19 953.5,-594.88 953.84,-600.47"/>
215
371
  </g>
216
372
  <!-- Obs&#45;&gt;Store -->
217
- <g id="edge13" class="edge">
373
+ <g id="edge14" class="edge">
218
374
  <title>Obs&#45;&gt;Store</title>
219
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M737.04,-494.94C797.55,-486.51 879.17,-475.14 934.07,-467.5"/>
220
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="934.17,-470.31 941.71,-466.43 933.4,-464.76 934.17,-470.31"/>
375
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M734.9,-536.86C798.6,-549.88 893.04,-569.19 954.15,-581.69"/>
376
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="953.34,-584.38 961.74,-583.24 954.46,-578.89 953.34,-584.38"/>
221
377
  </g>
222
378
  <!-- Intel&#45;&gt;Store -->
223
- <g id="edge14" class="edge">
379
+ <g id="edge15" class="edge">
224
380
  <title>Intel&#45;&gt;Store</title>
225
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M712.74,-433.29C773.76,-438.89 870.96,-447.82 933.65,-453.58"/>
226
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="933.22,-456.35 941.45,-454.29 933.73,-450.77 933.22,-456.35"/>
227
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-449.27" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">record:true</text>
381
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M723.44,-130.05C740.72,-135.5 759.09,-143.22 774,-154 797.41,-170.93 795.26,-183.2 813,-206 847.55,-250.4 863.64,-256.21 892.5,-304.5 944.37,-391.27 985.02,-504.17 1003.51,-559.86"/>
382
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="1000.82,-560.66 1005.98,-567.39 1006.14,-558.92 1000.82,-560.66"/>
383
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-306.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">record:true</text>
228
384
  </g>
229
385
  <!-- Watch&#45;&gt;Store -->
230
- <g id="edge15" class="edge">
386
+ <g id="edge16" class="edge">
231
387
  <title>Watch&#45;&gt;Store</title>
232
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M725.33,-372.32C786.58,-392.11 875.36,-420.78 933.89,-439.68"/>
233
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="933.03,-442.34 941.5,-442.14 934.75,-437.01 933.03,-442.34"/>
234
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-419.55" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">category::web</text>
388
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M735.74,-865.69C748.75,-860.16 762.03,-853.87 774,-847 831.82,-813.79 845.64,-802.43 892.5,-755 932.47,-714.54 970.73,-660.69 993.39,-626.68"/>
389
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="995.65,-628.34 997.73,-620.12 990.98,-625.25 995.65,-628.34"/>
390
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-824.92" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">category::web</text>
235
391
  </g>
236
392
  <!-- Shots -->
237
- <g id="node17" class="node">
393
+ <g id="node30" class="node">
238
394
  <title>Shots</title>
239
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1054.5,-380.82C1054.5,-383.24 1027.89,-385.2 995.12,-385.2 962.36,-385.2 935.75,-383.24 935.75,-380.82 935.75,-380.82 935.75,-341.45 935.75,-341.45 935.75,-339.03 962.36,-337.07 995.12,-337.07 1027.89,-337.07 1054.5,-339.03 1054.5,-341.45 1054.5,-341.45 1054.5,-380.82 1054.5,-380.82"/>
240
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M1054.5,-380.82C1054.5,-378.41 1027.89,-376.45 995.12,-376.45 962.36,-376.45 935.75,-378.41 935.75,-380.82"/>
241
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-364.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">~/.pwn/extrospection/</text>
242
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-350.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">web/*.png</text>
395
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1074.75,-853.69C1074.75,-856.1 1048.14,-858.06 1015.38,-858.06 982.61,-858.06 956,-856.1 956,-853.69 956,-853.69 956,-814.31 956,-814.31 956,-811.9 982.61,-809.94 1015.38,-809.94 1048.14,-809.94 1074.75,-811.9 1074.75,-814.31 1074.75,-814.31 1074.75,-853.69 1074.75,-853.69"/>
396
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M1074.75,-853.69C1074.75,-851.27 1048.14,-849.31 1015.38,-849.31 982.61,-849.31 956,-851.27 956,-853.69"/>
397
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-837.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">~/.pwn/extrospection/</text>
398
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-823.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">web/*.png</text>
243
399
  </g>
244
400
  <!-- Watch&#45;&gt;Shots -->
245
- <g id="edge16" class="edge">
401
+ <g id="edge17" class="edge">
246
402
  <title>Watch&#45;&gt;Shots</title>
247
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M725.33,-352.37C783.63,-354.27 866.87,-356.99 925.23,-358.89"/>
248
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="925.04,-361.68 933.13,-359.15 925.22,-356.09 925.04,-361.68"/>
403
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M735.83,-872.84C760.1,-867.21 787.66,-861.3 813,-857 856.98,-849.54 906.77,-843.83 945.85,-839.96"/>
404
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="945.89,-842.77 953.58,-839.21 945.35,-837.2 945.89,-842.77"/>
249
405
  </g>
250
406
  <!-- Verify&#45;&gt;Store -->
251
- <g id="edge18" class="edge">
407
+ <g id="edge32" class="edge">
252
408
  <title>Verify&#45;&gt;Store</title>
253
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M718.13,-290.29C731.55,-295.99 745.62,-302.14 758.62,-308.13 809.93,-331.79 824.76,-334.53 872.25,-365.13 894.83,-379.68 898.05,-386.64 919.25,-403.13 930.18,-411.63 942.14,-420.69 953.23,-428.98"/>
254
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="951.46,-431.15 959.54,-433.69 954.8,-426.66 951.46,-431.15"/>
255
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-377.58" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:confirmed</text>
256
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-367.08" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:intel obs (ttl 30d)</text>
409
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M748.16,-1034.77C757.49,-1029.8 766.37,-1023.92 774,-1017 801.82,-991.75 785.72,-967.84 813,-942 841.16,-915.33 865.81,-934.14 892.5,-906 897.58,-900.65 971.24,-707.6 1001.52,-627.9"/>
410
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="1004.07,-629.07 1004.29,-620.6 998.83,-627.08 1004.07,-629.07"/>
411
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-954.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:confirmed</text>
412
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-943.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:intel obs (ttl 30d)</text>
257
413
  </g>
258
414
  <!-- Mist -->
259
- <g id="node19" class="node">
415
+ <g id="node32" class="node">
260
416
  <title>Mist</title>
261
- <path fill="#fca5a5" stroke="#334155" stroke-width="2" d="M1048.5,-298.38C1048.5,-298.38 941.75,-298.38 941.75,-298.38 935.75,-298.38 929.75,-292.38 929.75,-286.38 929.75,-286.38 929.75,-261.88 929.75,-261.88 929.75,-255.88 935.75,-249.88 941.75,-249.88 941.75,-249.88 1048.5,-249.88 1048.5,-249.88 1054.5,-249.88 1060.5,-255.88 1060.5,-261.88 1060.5,-261.88 1060.5,-286.38 1060.5,-286.38 1060.5,-292.38 1054.5,-298.38 1048.5,-298.38"/>
262
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-283.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Mistakes.record</text>
263
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-270.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">(tool:&#39;assumption&#39;)</text>
264
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-256.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">→ KNOWN MISTAKES</text>
417
+ <path fill="#fca5a5" stroke="#334155" stroke-width="2" d="M1068.75,-1084.25C1068.75,-1084.25 962,-1084.25 962,-1084.25 956,-1084.25 950,-1078.25 950,-1072.25 950,-1072.25 950,-1047.75 950,-1047.75 950,-1041.75 956,-1035.75 962,-1035.75 962,-1035.75 1068.75,-1035.75 1068.75,-1035.75 1074.75,-1035.75 1080.75,-1041.75 1080.75,-1047.75 1080.75,-1047.75 1080.75,-1072.25 1080.75,-1072.25 1080.75,-1078.25 1074.75,-1084.25 1068.75,-1084.25"/>
418
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-1069.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Mistakes.record</text>
419
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-1056.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">(tool:&#39;assumption&#39;)</text>
420
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-1042.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">→ KNOWN MISTAKES</text>
265
421
  </g>
266
422
  <!-- Verify&#45;&gt;Mist -->
267
- <g id="edge17" class="edge">
423
+ <g id="edge31" class="edge">
268
424
  <title>Verify&#45;&gt;Mist</title>
269
- <path fill="none" stroke="#fb7185" stroke-width="2" d="M747.41,-262.49C785.93,-261.89 831.3,-261.87 872.25,-263.63 887.1,-264.27 902.95,-265.35 918.13,-266.57"/>
270
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="917.82,-269.36 926.03,-267.23 918.29,-263.77 917.82,-269.36"/>
271
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-265.58" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:refuted</text>
425
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M757.91,-1060C814.03,-1060 885.22,-1060 938.36,-1060"/>
426
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="938.04,-1062.8 946.04,-1060 938.04,-1057.2 938.04,-1062.8"/>
427
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-1061.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:refuted</text>
272
428
  </g>
273
429
  <!-- Mem -->
274
- <g id="node20" class="node">
430
+ <g id="node33" class="node">
275
431
  <title>Mem</title>
276
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M1059,-213.38C1059,-213.38 931.25,-213.38 931.25,-213.38 925.25,-213.38 919.25,-207.38 919.25,-201.38 919.25,-201.38 919.25,-176.88 919.25,-176.88 919.25,-170.88 925.25,-164.88 931.25,-164.88 931.25,-164.88 1059,-164.88 1059,-164.88 1065,-164.88 1071,-170.88 1071,-176.88 1071,-176.88 1071,-201.38 1071,-201.38 1071,-207.38 1065,-213.38 1059,-213.38"/>
277
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-198.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">PWN::Memory :fact</text>
278
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-185.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">[UNVERIFIED yyyy&#45;mm&#45;dd]</text>
279
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-171.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">(revalidate_memory)</text>
432
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M1079.25,-1169.25C1079.25,-1169.25 951.5,-1169.25 951.5,-1169.25 945.5,-1169.25 939.5,-1163.25 939.5,-1157.25 939.5,-1157.25 939.5,-1132.75 939.5,-1132.75 939.5,-1126.75 945.5,-1120.75 951.5,-1120.75 951.5,-1120.75 1079.25,-1120.75 1079.25,-1120.75 1085.25,-1120.75 1091.25,-1126.75 1091.25,-1132.75 1091.25,-1132.75 1091.25,-1157.25 1091.25,-1157.25 1091.25,-1163.25 1085.25,-1169.25 1079.25,-1169.25"/>
433
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-1154.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">PWN::Memory :fact</text>
434
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-1141.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">[UNVERIFIED yyyy&#45;mm&#45;dd]</text>
435
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-1127.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">(revalidate_memory)</text>
280
436
  </g>
281
437
  <!-- Verify&#45;&gt;Mem -->
282
- <g id="edge19" class="edge">
438
+ <g id="edge33" class="edge">
283
439
  <title>Verify&#45;&gt;Mem</title>
284
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M727.94,-239.9C738.65,-234.76 749.24,-228.83 758.62,-222.13 777.55,-208.62 772.27,-192.63 793.5,-183.13 829.12,-167.2 871.97,-166.36 908.91,-170.45"/>
285
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="908.43,-173.21 916.71,-171.41 909.11,-167.65 908.43,-173.21"/>
286
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-195.58" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">revalidate_memory</text>
287
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-185.08" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">mark stale :fact</text>
440
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M757.91,-1082.22C810.97,-1095.21 877.52,-1111.5 929.53,-1124.23"/>
441
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="928.72,-1126.92 937.15,-1126.1 930.05,-1121.48 928.72,-1126.92"/>
442
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-1127.53" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">revalidate_memory</text>
443
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-1117.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">mark stale :fact</text>
444
+ </g>
445
+ <!-- RFTune&#45;&gt;Store -->
446
+ <g id="edge18" class="edge">
447
+ <title>RFTune&#45;&gt;Store</title>
448
+ <path fill="none" stroke="#f59e0b" stroke-width="2" d="M734.26,-450.2C747.53,-455.51 761.28,-461.26 774,-467 791.75,-475.02 795.5,-478.44 813,-487 848.01,-504.12 857.9,-506.06 892.5,-524 916.93,-536.67 943.5,-551.77 965.57,-564.69"/>
449
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="2" points="964.13,-567.09 972.45,-568.74 966.97,-562.27 964.13,-567.09"/>
450
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-536.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">category::rf</text>
451
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-525.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">now_playing</text>
452
+ </g>
453
+ <!-- OsintT&#45;&gt;Store -->
454
+ <g id="edge25" class="edge">
455
+ <title>OsintT&#45;&gt;Store</title>
456
+ <path fill="none" stroke="#f59e0b" stroke-width="2" d="M746.23,-1119.84C756.14,-1114.82 765.7,-1108.91 774,-1102 798.88,-1081.3 792.19,-1065.29 813,-1040.5 843.74,-1003.87 867.66,-1008.86 892.5,-968 934.56,-898.82 914.71,-869.07 939.5,-792 958.16,-734 984.06,-668.07 999.99,-628.82"/>
457
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="2" points="1002.54,-629.99 1002.96,-621.52 997.35,-627.87 1002.54,-629.99"/>
458
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-1042.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">category::osint</text>
459
+ </g>
460
+ <!-- SerT&#45;&gt;Store -->
461
+ <g id="edge26" class="edge">
462
+ <title>SerT&#45;&gt;Store</title>
463
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M726.62,-955.89C742.64,-949.48 759.54,-941.49 774,-932 794.36,-918.64 794.01,-908.76 813,-893.5 845.82,-867.13 864.54,-873.47 892.5,-842 950.42,-776.8 987.54,-679.15 1004.19,-628.01"/>
464
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="1006.79,-629.07 1006.56,-620.59 1001.45,-627.36 1006.79,-629.07"/>
465
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-895.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">category::serial</text>
466
+ </g>
467
+ <!-- TelT&#45;&gt;Store -->
468
+ <g id="edge27" class="edge">
469
+ <title>TelT&#45;&gt;Store</title>
470
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M722.9,-785.97C739.7,-779.47 757.94,-771.64 774,-763 814.44,-741.24 916.88,-666.51 974.12,-624.07"/>
471
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="975.55,-626.49 980.3,-619.47 972.21,-621.99 975.55,-626.49"/>
472
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-739.26" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">category::telecomm</text>
473
+ </g>
474
+ <!-- PktT&#45;&gt;Store -->
475
+ <g id="edge28" class="edge">
476
+ <title>PktT&#45;&gt;Store</title>
477
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M736.75,-361.69C749.82,-367.47 762.86,-374.52 774,-383 796.71,-400.27 790.98,-415.85 813,-434 843.44,-459.1 860.4,-450.56 892.5,-473.5 928.64,-499.32 964.07,-536 987.33,-562.09"/>
478
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="985.16,-563.86 992.55,-568.01 989.36,-560.16 985.16,-563.86"/>
479
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-475.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">category::packet</text>
480
+ </g>
481
+ <!-- VisT&#45;&gt;Store -->
482
+ <g id="edge29" class="edge">
483
+ <title>VisT&#45;&gt;Store</title>
484
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M721.23,-271.25C739.65,-276.58 759.28,-284.94 774,-298 804.18,-324.79 784.71,-351.22 813,-380 840.66,-408.14 862.61,-393.75 892.5,-419.5 939.54,-460.03 977.34,-522.53 997.76,-560.7"/>
485
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="995.21,-561.87 1001.41,-567.65 1000.16,-559.26 995.21,-561.87"/>
486
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-421.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">category::vision</text>
487
+ </g>
488
+ <!-- VoxT&#45;&gt;Store -->
489
+ <g id="edge30" class="edge">
490
+ <title>VoxT&#45;&gt;Store</title>
491
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M726.69,-200.23C743.63,-205.57 761,-213.68 774,-226 808.03,-258.24 781.25,-289.52 813,-324 839.73,-353.02 864.25,-335.96 892.5,-363.5 950.84,-420.38 987.39,-511.23 1003.95,-560.16"/>
492
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="1001.21,-560.78 1006.38,-567.49 1006.53,-559.02 1001.21,-560.78"/>
493
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-365.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">category::voice</text>
288
494
  </g>
289
495
  <!-- Corr -->
290
- <g id="node15" class="node">
496
+ <g id="node28" class="node">
291
497
  <title>Corr</title>
292
- <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M703.38,-204.38C703.38,-204.38 607.88,-204.38 607.88,-204.38 601.88,-204.38 595.88,-198.38 595.88,-192.38 595.88,-192.38 595.88,-167.88 595.88,-167.88 595.88,-161.88 601.88,-155.88 607.88,-155.88 607.88,-155.88 703.38,-155.88 703.38,-155.88 709.38,-155.88 715.38,-161.88 715.38,-167.88 715.38,-167.88 715.38,-192.38 715.38,-192.38 715.38,-198.38 709.38,-204.38 703.38,-204.38"/>
293
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-189.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_correlate</text>
294
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-176.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">join with Learning</text>
295
- <text xml:space="preserve" text-anchor="middle" x="655.62" y="-162.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">+ Mistakes + Memory</text>
498
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M713.88,-64.25C713.88,-64.25 618.38,-64.25 618.38,-64.25 612.38,-64.25 606.38,-58.25 606.38,-52.25 606.38,-52.25 606.38,-27.75 606.38,-27.75 606.38,-21.75 612.38,-15.75 618.38,-15.75 618.38,-15.75 713.88,-15.75 713.88,-15.75 719.88,-15.75 725.88,-21.75 725.88,-27.75 725.88,-27.75 725.88,-52.25 725.88,-52.25 725.88,-58.25 719.88,-64.25 713.88,-64.25"/>
499
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-49.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extro_correlate</text>
500
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-36.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">join with Learning</text>
501
+ <text xml:space="preserve" text-anchor="middle" x="666.12" y="-22.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">+ Mistakes + Memory</text>
296
502
  </g>
297
503
  <!-- Prompt -->
298
- <g id="node18" class="node">
504
+ <g id="node31" class="node">
299
505
  <title>Prompt</title>
300
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M1045.88,-129.13C1045.88,-129.13 944.38,-129.13 944.38,-129.13 938.38,-129.13 932.38,-123.13 932.38,-117.13 932.38,-117.13 932.38,-105.13 932.38,-105.13 932.38,-99.13 938.38,-93.13 944.38,-93.13 944.38,-93.13 1045.88,-93.13 1045.88,-93.13 1051.88,-93.13 1057.88,-99.13 1057.88,-105.13 1057.88,-105.13 1057.88,-117.13 1057.88,-117.13 1057.88,-123.13 1051.88,-129.13 1045.88,-129.13"/>
301
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-114.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">EXTROSPECTION</text>
302
- <text xml:space="preserve" text-anchor="middle" x="995.12" y="-100.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">block in system prompt</text>
506
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M1066.12,-366C1066.12,-366 964.62,-366 964.62,-366 958.62,-366 952.62,-360 952.62,-354 952.62,-354 952.62,-342 952.62,-342 952.62,-336 958.62,-330 964.62,-330 964.62,-330 1066.12,-330 1066.12,-330 1072.12,-330 1078.12,-336 1078.12,-342 1078.12,-342 1078.12,-354 1078.12,-354 1078.12,-360 1072.12,-366 1066.12,-366"/>
507
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-351.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">EXTROSPECTION</text>
508
+ <text xml:space="preserve" text-anchor="middle" x="1015.38" y="-337.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">block in system prompt</text>
303
509
  </g>
304
510
  <!-- Corr&#45;&gt;Prompt -->
305
- <g id="edge20" class="edge">
511
+ <g id="edge34" class="edge">
306
512
  <title>Corr&#45;&gt;Prompt</title>
307
- <path fill="none" stroke="#a78bfa" stroke-width="2" d="M716.35,-155.48C740.01,-146.64 767.67,-137.44 793.5,-131.63 835.34,-122.23 883.07,-117.13 921.48,-114.37"/>
308
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="921.24,-117.19 929.03,-113.86 920.86,-111.6 921.24,-117.19"/>
309
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-133.58" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">findings</text>
513
+ <path fill="none" stroke="#a78bfa" stroke-width="2" d="M726.71,-57.84C742.82,-64.12 759.74,-72.13 774,-82 873.23,-150.65 960.02,-267.87 996.3,-320.73"/>
514
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="993.77,-321.98 1000.58,-327.02 998.4,-318.83 993.77,-321.98"/>
515
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-188.47" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">findings</text>
310
516
  </g>
311
517
  <!-- Store&#45;&gt;Corr -->
312
- <g id="edge22" class="edge">
518
+ <g id="edge36" class="edge">
313
519
  <title>Store&#45;&gt;Corr</title>
314
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M951.61,-435.93C939.34,-427.21 927.15,-416.19 919.25,-403.13 851.01,-290.27 972.62,-195.69 872.25,-110.13 820.43,-65.97 740.18,-113.46 693.59,-148.9"/>
315
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="692.01,-146.58 687.41,-153.7 695.44,-151 692.01,-146.58"/>
520
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1004.47,-569.44C989.06,-530.57 959.08,-452.27 939.5,-384 912.65,-290.4 945.39,-251.77 892.5,-170 856.57,-114.45 787.99,-79.91 735.87,-60.53"/>
521
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="737,-57.96 728.52,-57.87 735.09,-63.22 737,-57.96"/>
316
522
  </g>
317
523
  <!-- Store&#45;&gt;Prompt -->
318
- <g id="edge21" class="edge">
524
+ <g id="edge35" class="edge">
319
525
  <title>Store&#45;&gt;Prompt</title>
320
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M954.46,-435.47C941.87,-426.61 928.81,-415.61 919.25,-403.13 867.09,-335.05 864.92,-307.67 849.04,-223.38 840.93,-180.34 883.31,-151.22 924.47,-133.45"/>
321
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="925.35,-136.12 931.68,-130.48 923.21,-130.95 925.35,-136.12"/>
322
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-214.83" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">inject</text>
526
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1015.38,-569.58C1015.38,-523.75 1015.38,-425.06 1015.38,-376.36"/>
527
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="1018.18,-376.46 1015.38,-368.46 1012.58,-376.46 1018.18,-376.46"/>
528
+ <text xml:space="preserve" text-anchor="middle" x="1007.12" y="-464.67" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">inject</text>
323
529
  </g>
324
530
  <!-- Mem&#45;&gt;Corr -->
325
- <g id="edge23" class="edge">
531
+ <g id="edge37" class="edge">
326
532
  <title>Mem&#45;&gt;Corr</title>
327
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M938.64,-164.25C931.46,-159.33 924.71,-153.64 919.25,-147.13 878.67,-98.8 923.74,-49.64 872.25,-13.13 797.18,40.09 711.81,-83.76 675.05,-146.49"/>
328
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="672.75,-144.88 671.18,-153.21 677.6,-147.68 672.75,-144.88"/>
329
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-25.58" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">rule (f)</text>
330
- <text xml:space="preserve" text-anchor="middle" x="832.88" y="-15.08" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">stale :fact</text>
533
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M956.33,-1120.12C949.7,-1115.04 943.79,-1109.04 939.5,-1102 880.75,-1005.72 965.47,-174 892.5,-88 854.99,-43.8 787.73,-34.26 736.42,-34.3"/>
534
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="736.64,-31.5 728.68,-34.4 736.71,-37.1 736.64,-31.5"/>
535
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-100.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">rule (f)</text>
536
+ <text xml:space="preserve" text-anchor="middle" x="852.75" y="-89.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">stale :fact</text>
331
537
  </g>
332
538
  </g>
333
539
  </svg>