summaryrefslogtreecommitdiff
path: root/packet-detector/src/.main.rs.swp
blob: 4a73a5f7c091ab3edc3d8da31c266b11c634870f (plain)
ofshex dumpascii
0000 62 30 56 49 4d 20 38 2e 32 00 00 00 00 10 00 00 60 40 55 69 a2 5e 80 09 6a 6f 11 00 72 6f 6f 74 b0VIM.8.2.......`@Ui.^..jo..root
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 73 67 32 2e 6e 6f 6d 6c 2e 63 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....sg2.noml.ch.................
0060 00 00 00 00 00 00 00 00 00 00 00 00 7e 72 6f 6f 74 2f 77 2f 70 61 63 6b 65 74 5f 65 62 70 66 2f ............~root/w/packet_ebpf/
0080 70 61 63 6b 65 74 2d 64 65 74 65 63 74 6f 72 2f 73 72 63 2f 6d 61 69 6e 2e 72 73 00 00 00 00 00 packet-detector/src/main.rs.....
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 75 74 66 2d 38 0d 00 33 32 31 30 00 00 00 00 23 22 21 20 13 12 55 00 .........utf-8..3210....#"!...U.
0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 74 70 02 00 7f 00 00 00 02 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 tp..............q...............
1020 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 72 00 00 00 00 00 00 00 ................%.......r.......
1040 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 61 64 00 00 66 00 00 00 46 02 00 00 00 10 00 00 71 00 00 00 00 00 00 00 c0 0f 00 00 bf 0f 00 00 ad..f...F.......q...............
2020 a0 0f 00 00 89 0f 00 00 71 0f 00 00 70 0f 00 00 51 0f 00 00 20 0f 00 00 fc 0e 00 00 d4 0e 00 00 ........q...p...Q...............
2040 bd 0e 00 00 75 0e 00 00 62 0e 00 00 61 0e 00 00 32 0e 00 00 31 0e 00 00 f3 0d 00 00 e8 0d 00 00 ....u...b...a...2...1...........
2060 bc 0d 00 00 ab 0d 00 00 99 0d 00 00 87 0d 00 00 85 0d 00 00 84 0d 00 00 60 0d 00 00 5f 0d 00 00 ........................`..._...
2080 23 0d 00 00 06 0d 00 00 cd 0c 00 00 c0 0c 00 00 87 0c 00 00 81 0c 00 00 7f 0c 00 00 7e 0c 00 00 #...........................~...
20a0 40 0c 00 00 35 0c 00 00 1e 0c 00 00 0f 0c 00 00 fe 0b 00 00 ed 0b 00 00 da 0b 00 00 c7 0b 00 00 @...5...........................
20c0 b5 0b 00 00 a6 0b 00 00 a4 0b 00 00 a3 0b 00 00 81 0b 00 00 80 0b 00 00 52 0b 00 00 51 0b 00 00 ........................R...Q...
20e0 34 0b 00 00 0f 0b 00 00 0d 0b 00 00 0c 0b 00 00 d0 0a 00 00 77 0a 00 00 3f 0a 00 00 25 0a 00 00 4...................w...?...%...
2100 d3 09 00 00 82 09 00 00 78 09 00 00 72 09 00 00 69 09 00 00 67 09 00 00 66 09 00 00 56 09 00 00 ........x...r...i...g...f...V...
2120 42 09 00 00 2e 09 00 00 24 09 00 00 22 09 00 00 21 09 00 00 d3 08 00 00 99 08 00 00 4f 08 00 00 B.......$..."...!...........O...
2140 ed 07 00 00 b1 07 00 00 b0 07 00 00 97 07 00 00 6d 07 00 00 43 07 00 00 3d 07 00 00 3c 07 00 00 ................m...C...=...<...
2160 00 07 00 00 d0 06 00 00 9d 06 00 00 41 06 00 00 1c 06 00 00 f1 05 00 00 f0 05 00 00 da 05 00 00 ............A...................
2180 75 05 00 00 53 05 00 00 46 05 00 00 d8 04 00 00 b6 04 00 00 b0 04 00 00 ae 04 00 00 ad 04 00 00 u...S...F.......................
21a0 9e 04 00 00 7e 04 00 00 39 04 00 00 d9 03 00 00 d8 03 00 00 a0 03 00 00 88 03 00 00 45 03 00 00 ....~...9...................E...
21c0 26 03 00 00 20 03 00 00 1f 03 00 00 05 03 00 00 af 02 00 00 47 02 00 00 46 02 00 00 45 02 00 00 &...................G...F...E...
21e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2240 00 00 00 00 00 00 00 20 20 20 20 69 6e 66 6f 21 28 22 4d 6f 64 65 3a 20 7b 7d 22 2c 20 69 66 20 ...........info!("Mode:.{}",.if.
2260 76 61 6c 69 64 61 74 6f 72 2e 69 73 5f 73 6f 6d 65 28 29 20 7b 20 22 54 4c 53 20 63 65 72 74 20 validator.is_some().{."TLS.cert.
2280 76 61 6c 69 64 61 74 69 6f 6e 22 20 7d 20 65 6c 73 65 20 7b 20 22 55 44 50 20 6d 61 67 69 63 20 validation".}.else.{."UDP.magic.
22a0 64 65 74 65 63 74 69 6f 6e 22 20 7d 29 3b 00 20 20 20 20 6c 65 74 20 76 61 6c 69 64 61 74 6f 72 detection".});.....let.validator
22c0 20 3d 20 61 72 67 73 2e 67 65 74 28 32 29 2e 6d 61 70 28 7c 70 7c 20 43 65 72 74 56 61 6c 69 64 .=.args.get(2).map(|p|.CertValid
22e0 61 74 6f 72 3a 3a 77 69 74 68 5f 63 61 5f 66 69 6c 65 28 70 29 29 2e 74 72 61 6e 73 70 6f 73 65 ator::with_ca_file(p)).transpose
2300 28 29 3f 3b 00 20 20 20 20 6c 65 74 20 69 66 61 63 65 20 3d 20 26 61 72 67 73 5b 31 5d 3b 00 00 ()?;.....let.iface.=.&args[1];..
2320 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 73 74 64 3a 3a 70 72 6f 63 65 73 73 3a 3a 65 78 69 74 ....}.........std::process::exit
2340 28 31 29 3b 00 20 20 20 20 20 20 20 20 65 70 72 69 6e 74 6c 6e 21 28 22 55 73 61 67 65 3a 20 7b (1);.........eprintln!("Usage:.{
2360 7d 20 3c 69 6e 74 65 72 66 61 63 65 3e 20 5b 63 61 2d 63 65 72 74 2e 70 65 6d 5d 22 2c 20 61 72 }.<interface>.[ca-cert.pem]",.ar
2380 67 73 5b 30 5d 29 3b 00 20 20 20 20 69 66 20 61 72 67 73 2e 6c 65 6e 28 29 20 3c 20 32 20 7b 00 gs[0]);.....if.args.len().<.2.{.
23a0 20 20 20 20 6c 65 74 20 61 72 67 73 3a 20 56 65 63 3c 53 74 72 69 6e 67 3e 20 3d 20 73 74 64 3a ....let.args:.Vec<String>.=.std:
23c0 3a 65 6e 76 3a 3a 61 72 67 73 28 29 2e 63 6f 6c 6c 65 63 74 28 29 3b 00 00 20 20 20 20 65 6e 76 :env::args().collect();......env
23e0 5f 6c 6f 67 67 65 72 3a 3a 42 75 69 6c 64 65 72 3a 3a 66 72 6f 6d 5f 65 6e 76 28 65 6e 76 5f 6c _logger::Builder::from_env(env_l
2400 6f 67 67 65 72 3a 3a 45 6e 76 3a 3a 64 65 66 61 75 6c 74 28 29 2e 64 65 66 61 75 6c 74 5f 66 69 ogger::Env::default().default_fi
2420 6c 74 65 72 5f 6f 72 28 22 69 6e 66 6f 22 29 29 2e 69 6e 69 74 28 29 3b 00 20 20 20 20 72 75 73 lter_or("info")).init();.....rus
2440 74 6c 73 3a 3a 63 72 79 70 74 6f 3a 3a 72 69 6e 67 3a 3a 64 65 66 61 75 6c 74 5f 70 72 6f 76 69 tls::crypto::ring::default_provi
2460 64 65 72 28 29 2e 69 6e 73 74 61 6c 6c 5f 64 65 66 61 75 6c 74 28 29 2e 6f 6b 28 29 3b 00 61 73 der().install_default().ok();.as
2480 79 6e 63 20 66 6e 20 6d 61 69 6e 28 29 20 2d 3e 20 52 65 73 75 6c 74 3c 28 29 3e 20 7b 00 23 5b ync.fn.main().->.Result<()>.{.#[
24a0 74 6f 6b 69 6f 3a 3a 6d 61 69 6e 5d 00 00 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 44 65 tokio::main]..}.....}.........De
24c0 63 69 73 69 6f 6e 3a 3a 42 6c 6f 63 6b 28 63 6f 6e 6e 5f 6b 65 79 29 00 20 20 20 20 20 20 20 20 cision::Block(conn_key).........
24e0 77 61 72 6e 21 28 22 42 4c 4f 43 4b 20 63 6f 6e 6e 20 7b 7d 3a 7b 7d 20 2d 20 7b 7d 22 2c 20 63 warn!("BLOCK.conn.{}:{}.-.{}",.c
2500 6f 6e 6e 5f 6b 65 79 2e 70 6f 72 74 5f 6c 6f 2c 20 63 6f 6e 6e 5f 6b 65 79 2e 70 6f 72 74 5f 68 onn_key.port_lo,.conn_key.port_h
2520 69 2c 20 72 65 73 75 6c 74 2e 65 72 72 6f 72 2e 75 6e 77 72 61 70 5f 6f 72 5f 64 65 66 61 75 6c i,.result.error.unwrap_or_defaul
2540 74 28 29 29 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 44 65 63 69 73 t());.....}.else.{.........Decis
2560 69 6f 6e 3a 3a 41 6c 6c 6f 77 28 63 6f 6e 6e 5f 6b 65 79 29 00 20 20 20 20 20 20 20 20 69 6e 66 ion::Allow(conn_key).........inf
2580 6f 21 28 22 41 4c 4c 4f 57 20 63 6f 6e 6e 20 7b 7d 3a 7b 7d 20 28 73 69 67 6e 65 64 20 62 79 20 o!("ALLOW.conn.{}:{}.(signed.by.
25a0 7b 7d 29 22 2c 20 63 6f 6e 6e 5f 6b 65 79 2e 70 6f 72 74 5f 6c 6f 2c 20 63 6f 6e 6e 5f 6b 65 79 {})",.conn_key.port_lo,.conn_key
25c0 2e 70 6f 72 74 5f 68 69 2c 20 72 65 73 75 6c 74 2e 69 73 73 75 65 72 29 3b 00 20 20 20 20 69 66 .port_hi,.result.issuer);.....if
25e0 20 72 65 73 75 6c 74 2e 76 61 6c 69 64 20 7b 00 00 20 20 20 20 69 6e 66 6f 21 28 22 7b 7d 3a 20 .result.valid.{......info!("{}:.
2600 7b 7d 22 2c 20 61 64 64 72 2c 20 72 65 73 75 6c 74 2e 73 75 62 6a 65 63 74 29 3b 00 20 20 20 20 {}",.addr,.result.subject);.....
2620 6c 65 74 20 72 65 73 75 6c 74 20 3d 20 76 2e 76 61 6c 69 64 61 74 65 28 26 63 65 72 74 73 29 3b let.result.=.v.validate(&certs);
2640 00 20 20 20 20 6c 65 74 20 53 6f 6d 65 28 63 65 72 74 73 29 20 3d 20 65 78 74 72 61 63 74 5f 63 .....let.Some(certs).=.extract_c
2660 65 72 74 73 28 26 64 61 74 61 5b 45 56 45 4e 54 5f 53 49 5a 45 2e 2e 65 6e 64 5d 29 20 65 6c 73 erts(&data[EVENT_SIZE..end]).els
2680 65 20 7b 20 72 65 74 75 72 6e 20 44 65 63 69 73 69 6f 6e 3a 3a 53 6b 69 70 20 7d 3b 00 20 20 20 e.{.return.Decision::Skip.};....
26a0 20 69 66 20 65 6e 64 20 3e 20 64 61 74 61 2e 6c 65 6e 28 29 20 7b 20 72 65 74 75 72 6e 20 44 65 .if.end.>.data.len().{.return.De
26c0 63 69 73 69 6f 6e 3a 3a 53 6b 69 70 3b 20 7d 00 20 20 20 20 6c 65 74 20 65 6e 64 20 3d 20 45 56 cision::Skip;.}.....let.end.=.EV
26e0 45 4e 54 5f 53 49 5a 45 20 2b 20 65 76 2e 74 6c 73 5f 6c 65 6e 20 61 73 20 75 73 69 7a 65 3b 00 ENT_SIZE.+.ev.tls_len.as.usize;.
2700 20 20 20 20 6c 65 74 20 53 6f 6d 65 28 76 29 20 3d 20 76 61 6c 69 64 61 74 6f 72 20 65 6c 73 65 ....let.Some(v).=.validator.else
2720 20 7b 20 72 65 74 75 72 6e 20 44 65 63 69 73 69 6f 6e 3a 3a 53 6b 69 70 20 7d 3b 00 00 20 20 20 .{.return.Decision::Skip.};.....
2740 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 65 63 69 73 69 6f 6e 3a 3a 41 6c 6c 6f .}.........return.Decision::Allo
2760 77 28 63 6f 6e 6e 5f 6b 65 79 29 3b 00 20 20 20 20 20 20 20 20 69 6e 66 6f 21 28 22 55 44 50 20 w(conn_key);.........info!("UDP.
2780 6d 61 67 69 63 20 66 72 6f 6d 20 7b 7d 22 2c 20 61 64 64 72 29 3b 00 20 20 20 20 69 66 20 65 76 magic.from.{}",.addr);.....if.ev
27a0 2e 74 6c 73 5f 6c 65 6e 20 3d 3d 20 30 20 7b 00 00 20 20 20 20 6c 65 74 20 63 6f 6e 6e 5f 6b 65 .tls_len.==.0.{......let.conn_ke
27c0 79 20 3d 20 6d 61 6b 65 5f 63 6f 6e 6e 5f 6b 65 79 28 65 76 2e 73 72 63 5f 70 6f 72 74 2c 20 65 y.=.make_conn_key(ev.src_port,.e
27e0 76 2e 64 73 74 5f 70 6f 72 74 29 3b 00 20 20 20 20 6c 65 74 20 61 64 64 72 20 3d 20 66 6f 72 6d v.dst_port);.....let.addr.=.form
2800 61 74 21 28 22 7b 7d 3a 7b 7d 20 2d 3e 20 7b 7d 3a 7b 7d 22 2c 20 69 70 28 65 76 2e 73 72 63 5f at!("{}:{}.->.{}:{}",.ip(ev.src_
2820 69 70 29 2c 20 65 76 2e 73 72 63 5f 70 6f 72 74 2c 20 69 70 28 65 76 2e 64 73 74 5f 69 70 29 2c ip),.ev.src_port,.ip(ev.dst_ip),
2840 20 65 76 2e 64 73 74 5f 70 6f 72 74 29 3b 00 20 20 20 20 6c 65 74 20 65 76 3a 20 45 76 65 6e 74 .ev.dst_port);.....let.ev:.Event
2860 20 3d 20 75 6e 73 61 66 65 20 7b 20 73 74 64 3a 3a 70 74 72 3a 3a 72 65 61 64 28 64 61 74 61 2e .=.unsafe.{.std::ptr::read(data.
2880 61 73 5f 70 74 72 28 29 20 61 73 20 2a 63 6f 6e 73 74 20 5f 29 20 7d 3b 00 20 20 20 20 69 66 20 as_ptr().as.*const._).};.....if.
28a0 64 61 74 61 2e 6c 65 6e 28 29 20 3c 20 45 56 45 4e 54 5f 53 49 5a 45 20 7b 20 72 65 74 75 72 6e data.len().<.EVENT_SIZE.{.return
28c0 20 44 65 63 69 73 69 6f 6e 3a 3a 53 6b 69 70 3b 20 7d 00 66 6e 20 68 61 6e 64 6c 65 5f 65 76 65 .Decision::Skip;.}.fn.handle_eve
28e0 6e 74 28 64 61 74 61 3a 20 26 5b 75 38 5d 2c 20 76 61 6c 69 64 61 74 6f 72 3a 20 4f 70 74 69 6f nt(data:.&[u8],.validator:.Optio
2900 6e 3c 26 43 65 72 74 56 61 6c 69 64 61 74 6f 72 3e 29 20 2d 3e 20 44 65 63 69 73 69 6f 6e 20 7b n<&CertValidator>).->.Decision.{
2920 00 00 7d 00 20 20 20 20 53 6b 69 70 2c 00 20 20 20 20 42 6c 6f 63 6b 28 43 6f 6e 6e 4b 65 79 29 ..}.....Skip,.....Block(ConnKey)
2940 2c 00 20 20 20 20 41 6c 6c 6f 77 28 43 6f 6e 6e 4b 65 79 29 2c 00 65 6e 75 6d 20 44 65 63 69 73 ,.....Allow(ConnKey),.enum.Decis
2960 69 6f 6e 20 7b 00 00 7d 00 20 20 20 20 4e 6f 6e 65 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 ion.{..}.....None.....}.........
2980 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 53 6f 6d 65 28 63 2e 63 65 72 74 }.............return.Some(c.cert
29a0 5f 63 68 61 69 6e 2e 69 74 65 72 28 29 2e 6d 61 70 28 7c 78 7c 20 78 2e 64 61 74 61 2e 74 6f 5f _chain.iter().map(|x|.x.data.to_
29c0 76 65 63 28 29 29 2e 63 6f 6c 6c 65 63 74 28 29 29 3b 00 20 20 20 20 20 20 20 20 69 66 20 6c 65 vec()).collect());.........if.le
29e0 74 20 54 6c 73 4d 65 73 73 61 67 65 3a 3a 48 61 6e 64 73 68 61 6b 65 28 54 6c 73 4d 65 73 73 61 t.TlsMessage::Handshake(TlsMessa
2a00 67 65 48 61 6e 64 73 68 61 6b 65 3a 3a 43 65 72 74 69 66 69 63 61 74 65 28 63 29 29 20 3d 20 6d geHandshake::Certificate(c)).=.m
2a20 73 67 20 7b 00 20 20 20 20 66 6f 72 20 6d 73 67 20 69 6e 20 26 72 65 63 2e 6d 73 67 20 7b 00 20 sg.{.....for.msg.in.&rec.msg.{..
2a40 20 20 20 6c 65 74 20 28 5f 2c 20 72 65 63 29 20 3d 20 70 61 72 73 65 5f 74 6c 73 5f 70 6c 61 69 ...let.(_,.rec).=.parse_tls_plai
2a60 6e 74 65 78 74 28 74 6c 73 5f 64 61 74 61 29 2e 6f 6b 28 29 3f 3b 00 20 20 20 20 69 66 20 74 6c ntext(tls_data).ok()?;.....if.tl
2a80 73 5f 64 61 74 61 2e 6c 65 6e 28 29 20 3c 20 36 20 7c 7c 20 74 6c 73 5f 64 61 74 61 5b 30 5d 20 s_data.len().<.6.||.tls_data[0].
2aa0 21 3d 20 30 78 31 36 20 7c 7c 20 74 6c 73 5f 64 61 74 61 5b 35 5d 20 21 3d 20 30 78 30 42 20 7b !=.0x16.||.tls_data[5].!=.0x0B.{
2ac0 20 72 65 74 75 72 6e 20 4e 6f 6e 65 3b 20 7d 00 66 6e 20 65 78 74 72 61 63 74 5f 63 65 72 74 73 .return.None;.}.fn.extract_certs
2ae0 28 74 6c 73 5f 64 61 74 61 3a 20 26 5b 75 38 5d 29 20 2d 3e 20 4f 70 74 69 6f 6e 3c 56 65 63 3c (tls_data:.&[u8]).->.Option<Vec<
2b00 56 65 63 3c 75 38 3e 3e 3e 20 7b 00 00 7d 00 20 20 20 20 49 70 76 34 41 64 64 72 3a 3a 66 72 6f Vec<u8>>>.{..}.....Ipv4Addr::fro
2b20 6d 28 6e 2e 74 6f 5f 62 65 5f 62 79 74 65 73 28 29 29 20 00 66 6e 20 69 70 28 6e 3a 20 75 33 32 m(n.to_be_bytes())..fn.ip(n:.u32
2b40 29 20 2d 3e 20 49 70 76 34 41 64 64 72 20 7b 20 00 00 63 6f 6e 73 74 20 45 56 45 4e 54 5f 53 49 ).->.Ipv4Addr.{...const.EVENT_SI
2b60 5a 45 3a 20 75 73 69 7a 65 20 3d 20 73 69 7a 65 5f 6f 66 3a 3a 3c 45 76 65 6e 74 3e 28 29 3b 00 ZE:.usize.=.size_of::<Event>();.
2b80 00 75 6e 73 61 66 65 20 69 6d 70 6c 20 61 79 61 3a 3a 50 6f 64 20 66 6f 72 20 45 76 65 6e 74 20 .unsafe.impl.aya::Pod.for.Event.
2ba0 7b 7d 00 00 7d 00 20 20 20 20 5f 70 61 64 3a 20 75 31 36 2c 00 20 20 20 20 74 6c 73 5f 6c 65 6e {}..}....._pad:.u16,.....tls_len
2bc0 3a 20 75 31 36 2c 00 20 20 20 20 64 73 74 5f 70 6f 72 74 3a 20 75 31 36 2c 00 20 20 20 20 73 72 :.u16,.....dst_port:.u16,.....sr
2be0 63 5f 70 6f 72 74 3a 20 75 31 36 2c 00 20 20 20 20 64 73 74 5f 69 70 3a 20 75 33 32 2c 00 20 20 c_port:.u16,.....dst_ip:.u32,...
2c00 20 20 73 72 63 5f 69 70 3a 20 75 33 32 2c 00 73 74 72 75 63 74 20 45 76 65 6e 74 20 7b 00 23 5b ..src_ip:.u32,.struct.Event.{.#[
2c20 64 65 72 69 76 65 28 43 6c 6f 6e 65 2c 20 43 6f 70 79 29 5d 00 23 5b 72 65 70 72 28 43 29 5d 00 derive(Clone,.Copy)].#[repr(C)].
2c40 2f 2f 20 74 68 69 73 20 68 61 73 20 74 6f 20 62 65 20 74 68 65 20 65 78 61 63 74 20 73 61 6d 65 //.this.has.to.be.the.exact.same
2c60 20 61 73 20 74 68 65 20 73 74 72 75 63 74 20 69 6e 20 6b 65 72 6e 65 6c 73 70 61 63 65 00 00 7d .as.the.struct.in.kernelspace..}
2c80 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 43 6f 6e 6e 4b 65 79 20 7b 20 70 6f 72 74 5f 6c 6f .....}.........ConnKey.{.port_lo
2ca0 3a 20 64 73 74 5f 70 6f 72 74 2c 20 70 6f 72 74 5f 68 69 3a 20 73 72 63 5f 70 6f 72 74 20 7d 00 :.dst_port,.port_hi:.src_port.}.
2cc0 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 43 6f 6e 6e 4b 65 79 20 7b 20 70 ....}.else.{.........ConnKey.{.p
2ce0 6f 72 74 5f 6c 6f 3a 20 73 72 63 5f 70 6f 72 74 2c 20 70 6f 72 74 5f 68 69 3a 20 64 73 74 5f 70 ort_lo:.src_port,.port_hi:.dst_p
2d00 6f 72 74 20 7d 00 20 20 20 20 69 66 20 73 72 63 5f 70 6f 72 74 20 3c 20 64 73 74 5f 70 6f 72 74 ort.}.....if.src_port.<.dst_port
2d20 20 7b 00 66 6e 20 6d 61 6b 65 5f 63 6f 6e 6e 5f 6b 65 79 28 73 72 63 5f 70 6f 72 74 3a 20 75 31 .{.fn.make_conn_key(src_port:.u1
2d40 36 2c 20 64 73 74 5f 70 6f 72 74 3a 20 75 31 36 29 20 2d 3e 20 43 6f 6e 6e 4b 65 79 20 7b 00 00 6,.dst_port:.u16).->.ConnKey.{..
2d60 75 6e 73 61 66 65 20 69 6d 70 6c 20 61 79 61 3a 3a 50 6f 64 20 66 6f 72 20 43 6f 6e 6e 4b 65 79 unsafe.impl.aya::Pod.for.ConnKey
2d80 20 7b 7d 00 00 7d 00 20 20 20 20 70 6f 72 74 5f 68 69 3a 20 75 31 36 2c 00 20 20 20 20 70 6f 72 .{}..}.....port_hi:.u16,.....por
2da0 74 5f 6c 6f 3a 20 75 31 36 2c 00 73 74 72 75 63 74 20 43 6f 6e 6e 4b 65 79 20 7b 00 23 5b 64 65 t_lo:.u16,.struct.ConnKey.{.#[de
2dc0 72 69 76 65 28 43 6c 6f 6e 65 2c 20 43 6f 70 79 2c 20 50 61 72 74 69 61 6c 45 71 2c 20 45 71 2c rive(Clone,.Copy,.PartialEq,.Eq,
2de0 20 48 61 73 68 29 5d 00 23 5b 72 65 70 72 28 43 29 5d 00 2f 2f 20 74 68 69 73 20 68 61 73 20 74 .Hash)].#[repr(C)].//.this.has.t
2e00 6f 20 62 65 20 74 68 65 20 65 78 61 63 74 20 73 61 6d 65 20 61 73 20 74 68 65 20 73 74 72 75 63 o.be.the.exact.same.as.the.struc
2e20 74 20 69 6e 20 6b 65 72 6e 65 6c 73 70 61 63 65 00 00 75 73 65 20 70 61 63 6b 65 74 5f 64 65 74 t.in.kernelspace..use.packet_det
2e40 65 63 74 6f 72 3a 3a 76 61 6c 69 64 61 74 6f 72 3a 3a 43 65 72 74 56 61 6c 69 64 61 74 6f 72 3b ector::validator::CertValidator;
2e60 00 00 75 73 65 20 74 6f 6b 69 6f 3a 3a 73 69 67 6e 61 6c 3b 00 75 73 65 20 74 6c 73 5f 70 61 72 ..use.tokio::signal;.use.tls_par
2e80 73 65 72 3a 3a 7b 70 61 72 73 65 5f 74 6c 73 5f 70 6c 61 69 6e 74 65 78 74 2c 20 54 6c 73 4d 65 ser::{parse_tls_plaintext,.TlsMe
2ea0 73 73 61 67 65 2c 20 54 6c 73 4d 65 73 73 61 67 65 48 61 6e 64 73 68 61 6b 65 7d 3b 00 75 73 65 ssage,.TlsMessageHandshake};.use
2ec0 20 6c 6f 67 3a 3a 7b 69 6e 66 6f 2c 20 77 61 72 6e 7d 3b 00 75 73 65 20 61 79 61 3a 3a 7b 69 6e .log::{info,.warn};.use.aya::{in
2ee0 63 6c 75 64 65 5f 62 79 74 65 73 5f 61 6c 69 67 6e 65 64 2c 20 45 62 70 66 7d 3b 00 75 73 65 20 clude_bytes_aligned,.Ebpf};.use.
2f00 61 79 61 3a 3a 70 72 6f 67 72 61 6d 73 3a 3a 7b 58 64 70 2c 20 58 64 70 46 6c 61 67 73 7d 3b 00 aya::programs::{Xdp,.XdpFlags};.
2f20 75 73 65 20 61 79 61 3a 3a 6d 61 70 73 3a 3a 7b 48 61 73 68 4d 61 70 20 61 73 20 41 79 61 48 61 use.aya::maps::{HashMap.as.AyaHa
2f40 73 68 4d 61 70 2c 20 52 69 6e 67 42 75 66 7d 3b 00 75 73 65 20 61 6e 79 68 6f 77 3a 3a 7b 43 6f shMap,.RingBuf};.use.anyhow::{Co
2f60 6e 74 65 78 74 2c 20 52 65 73 75 6c 74 7d 3b 00 00 75 73 65 20 73 74 64 3a 3a 6e 65 74 3a 3a 49 ntext,.Result};..use.std::net::I
2f80 70 76 34 41 64 64 72 3b 00 75 73 65 20 73 74 64 3a 3a 6d 65 6d 3a 3a 73 69 7a 65 5f 6f 66 3b 00 pv4Addr;.use.std::mem::size_of;.
2fa0 75 73 65 20 73 74 64 3a 3a 63 6f 6c 6c 65 63 74 69 6f 6e 73 3a 3a 48 61 73 68 53 65 74 3b 00 00 use.std::collections::HashSet;..
2fc0 2f 2f 21 20 54 4c 53 20 43 65 72 74 69 66 69 63 61 74 65 20 56 61 6c 69 64 61 74 6f 72 20 2f 20 //!.TLS.Certificate.Validator./.
2fe0 55 44 50 20 4d 61 67 69 63 20 44 65 74 65 63 74 6f 72 20 2d 20 65 42 50 46 2d 62 61 73 65 64 00 UDP.Magic.Detector.-.eBPF-based.
3000 61 64 00 00 f0 08 00 00 a0 09 00 00 00 10 00 00 25 00 00 00 00 00 00 00 8e 0f 00 00 39 0f 00 00 ad..............%...........9...
3020 24 0f 00 00 d6 0e 00 00 ae 0e 00 00 ad 0e 00 00 3c 0e 00 00 cb 0d 00 00 73 0d 00 00 51 0d 00 00 $...............<.......s...Q...
3040 2f 0d 00 00 2e 0d 00 00 f3 0c 00 00 f2 0c 00 00 e7 0c 00 00 ce 0c 00 00 a3 0c 00 00 53 0c 00 00 /...........................S...
3060 1e 0c 00 00 d2 0b 00 00 a0 0b 00 00 68 0b 00 00 38 0b 00 00 1e 0b 00 00 ec 0a 00 00 b4 0a 00 00 ............h...8...............
3080 84 0a 00 00 6a 0a 00 00 3d 0a 00 00 27 0a 00 00 15 0a 00 00 07 0a 00 00 fd 09 00 00 f7 09 00 00 ....j...=...'...................
30a0 ad 09 00 00 a2 09 00 00 a0 09 00 00 9f 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a0 7d 00 20 20 20 20 4f 6b 28 28 29 29 00 20 20 20 20 70 72 69 6e 74 6c 6e 21 28 22 5c 6e 41 6c 6c }.....Ok(()).....println!("\nAll
39c0 6f 77 65 64 3a 20 7b 7d 2c 20 42 6c 6f 63 6b 65 64 3a 20 7b 7d 22 2c 20 61 6c 6c 6f 77 65 64 5f owed:.{},.Blocked:.{}",.allowed_
39e0 63 6f 75 6e 74 2c 20 62 6c 6f 63 6b 65 64 5f 63 6f 75 6e 74 29 3b 00 20 20 20 20 7d 00 20 20 20 count,.blocked_count);.....}....
3a00 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 .....}.............}............
3a20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 .....}.....................}....
3a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 63 69 73 69 6f 6e 3a 3a 53 .....................Decision::S
3a60 6b 69 70 20 3d 3e 20 7b 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 kip.=>.{}.......................
3a80 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..}.............................
3aa0 62 6c 6f 63 6b 65 64 5f 63 6f 75 6e 74 20 2b 3d 20 31 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 blocked_count.+=.1;.............
3ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6c 6f 63 6b 65 64 2e 69 6e 73 65 72 74 28 6b ................blocked.insert(k
3ae0 65 79 2c 20 31 2c 20 30 29 3f 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ey,.1,.0)?;.....................
3b00 20 20 20 20 44 65 63 69 73 69 6f 6e 3a 3a 42 6c 6f 63 6b 28 6b 65 79 29 20 3d 3e 20 7b 00 20 20 ....Decision::Block(key).=>.{...
3b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 ......................}.........
3b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 6c 6f 77 65 64 5f 63 6f 75 6e ....................allowed_coun
3b60 74 20 2b 3d 20 31 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.+=.1;.........................
3b80 20 20 20 20 61 6c 6c 6f 77 65 64 2e 69 6e 73 65 72 74 28 6b 65 79 2c 20 31 2c 20 30 29 3f 3b 00 ....allowed.insert(key,.1,.0)?;.
3ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 63 69 73 69 6f 6e ........................Decision
3bc0 3a 3a 41 6c 6c 6f 77 28 6b 65 79 29 20 3d 3e 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ::Allow(key).=>.{...............
3be0 20 20 20 20 20 20 6d 61 74 63 68 20 68 61 6e 64 6c 65 5f 65 76 65 6e 74 28 69 74 65 6d 2e 61 73 ......match.handle_event(item.as
3c00 5f 72 65 66 28 29 2c 20 76 61 6c 69 64 61 74 6f 72 2e 61 73 5f 72 65 66 28 29 29 20 7b 00 20 20 _ref(),.validator.as_ref()).{...
3c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 6c 65 74 20 53 6f 6d 65 28 69 74 65 ..............while.let.Some(ite
3c40 6d 29 20 3d 20 72 69 6e 67 2e 6e 65 78 74 28 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 5f m).=.ring.next().{............._
3c60 20 3d 20 74 6f 6b 69 6f 3a 3a 74 69 6d 65 3a 3a 73 6c 65 65 70 28 74 6f 6b 69 6f 3a 3a 74 69 6d .=.tokio::time::sleep(tokio::tim
3c80 65 3a 3a 44 75 72 61 74 69 6f 6e 3a 3a 66 72 6f 6d 5f 6d 69 6c 6c 69 73 28 31 30 29 29 20 3d 3e e::Duration::from_millis(10)).=>
3ca0 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 5f 20 3d 20 73 69 67 6e 61 6c 3a 3a 63 74 72 6c 5f .{............._.=.signal::ctrl_
3cc0 63 28 29 20 3d 3e 20 62 72 65 61 6b 2c 00 20 20 20 20 20 20 20 20 74 6f 6b 69 6f 3a 3a 73 65 6c c().=>.break,.........tokio::sel
3ce0 65 63 74 21 20 7b 00 20 20 20 20 6c 6f 6f 70 20 7b 00 00 20 20 20 20 70 72 69 6e 74 6c 6e 21 28 ect!.{.....loop.{......println!(
3d00 22 5c 6e 52 75 6e 6e 69 6e 67 20 6f 6e 20 7b 7d 20 2d 20 43 74 72 6c 2b 43 20 74 6f 20 73 74 6f "\nRunning.on.{}.-.Ctrl+C.to.sto
3d20 70 5c 6e 22 2c 20 69 66 61 63 65 29 3b 00 00 20 20 20 20 6c 65 74 20 6d 75 74 20 62 6c 6f 63 6b p\n",.iface);......let.mut.block
3d40 65 64 5f 63 6f 75 6e 74 20 3d 20 30 75 33 32 3b 00 20 20 20 20 6c 65 74 20 6d 75 74 20 61 6c 6c ed_count.=.0u32;.....let.mut.all
3d60 6f 77 65 64 5f 63 6f 75 6e 74 20 3d 20 30 75 33 32 3b 00 20 20 20 20 6c 65 74 20 6d 75 74 20 72 owed_count.=.0u32;.....let.mut.r
3d80 69 6e 67 3a 20 52 69 6e 67 42 75 66 3c 5f 3e 20 3d 20 52 69 6e 67 42 75 66 3a 3a 74 72 79 5f 66 ing:.RingBuf<_>.=.RingBuf::try_f
3da0 72 6f 6d 28 62 70 66 2e 74 61 6b 65 5f 6d 61 70 28 22 54 4c 53 5f 45 56 45 4e 54 53 22 29 2e 75 rom(bpf.take_map("TLS_EVENTS").u
3dc0 6e 77 72 61 70 28 29 29 3f 3b 00 20 20 20 20 6c 65 74 20 6d 75 74 20 62 6c 6f 63 6b 65 64 3a 20 nwrap())?;.....let.mut.blocked:.
3de0 41 79 61 48 61 73 68 4d 61 70 3c 5f 2c 20 43 6f 6e 6e 4b 65 79 2c 20 75 38 3e 20 3d 20 41 79 61 AyaHashMap<_,.ConnKey,.u8>.=.Aya
3e00 48 61 73 68 4d 61 70 3a 3a 74 72 79 5f 66 72 6f 6d 28 62 70 66 2e 74 61 6b 65 5f 6d 61 70 28 22 HashMap::try_from(bpf.take_map("
3e20 42 4c 4f 43 4b 45 44 5f 43 4f 4e 4e 53 22 29 2e 75 6e 77 72 61 70 28 29 29 3f 3b 00 20 20 20 20 BLOCKED_CONNS").unwrap())?;.....
3e40 6c 65 74 20 6d 75 74 20 61 6c 6c 6f 77 65 64 3a 20 41 79 61 48 61 73 68 4d 61 70 3c 5f 2c 20 43 let.mut.allowed:.AyaHashMap<_,.C
3e60 6f 6e 6e 4b 65 79 2c 20 75 38 3e 20 3d 20 41 79 61 48 61 73 68 4d 61 70 3a 3a 74 72 79 5f 66 72 onnKey,.u8>.=.AyaHashMap::try_fr
3e80 6f 6d 28 62 70 66 2e 74 61 6b 65 5f 6d 61 70 28 22 41 4c 4c 4f 57 45 44 5f 43 4f 4e 4e 53 22 29 om(bpf.take_map("ALLOWED_CONNS")
3ea0 2e 75 6e 77 72 61 70 28 29 29 3f 3b 00 00 20 20 20 20 69 6e 66 6f 21 28 22 58 44 50 20 61 74 74 .unwrap())?;......info!("XDP.att
3ec0 61 63 68 65 64 20 74 6f 20 7b 7d 22 2c 20 69 66 61 63 65 29 3b 00 20 20 20 20 70 72 6f 67 72 61 ached.to.{}",.iface);.....progra
3ee0 6d 2e 61 74 74 61 63 68 28 69 66 61 63 65 2c 20 58 64 70 46 6c 61 67 73 3a 3a 64 65 66 61 75 6c m.attach(iface,.XdpFlags::defaul
3f00 74 28 29 29 2e 63 6f 6e 74 65 78 74 28 22 58 44 50 20 61 74 74 61 63 68 20 66 61 69 6c 65 64 22 t()).context("XDP.attach.failed"
3f20 29 3f 3b 00 20 20 20 20 70 72 6f 67 72 61 6d 2e 6c 6f 61 64 28 29 3f 3b 00 20 20 20 20 6c 65 74 )?;.....program.load()?;.....let
3f40 20 70 72 6f 67 72 61 6d 3a 20 26 6d 75 74 20 58 64 70 20 3d 20 62 70 66 2e 70 72 6f 67 72 61 6d .program:.&mut.Xdp.=.bpf.program
3f60 5f 6d 75 74 28 22 70 61 63 6b 65 74 5f 64 65 74 65 63 74 6f 72 22 29 2e 75 6e 77 72 61 70 28 29 _mut("packet_detector").unwrap()
3f80 2e 74 72 79 5f 69 6e 74 6f 28 29 3f 3b 00 20 20 20 20 6c 65 74 20 6d 75 74 20 62 70 66 20 3d 20 .try_into()?;.....let.mut.bpf.=.
3fa0 45 62 70 66 3a 3a 6c 6f 61 64 28 69 6e 63 6c 75 64 65 5f 62 79 74 65 73 5f 61 6c 69 67 6e 65 64 Ebpf::load(include_bytes_aligned
3fc0 21 28 22 2e 2e 2f 2e 2e 2f 74 61 72 67 65 74 2f 62 70 66 65 6c 2d 75 6e 6b 6e 6f 77 6e 2d 6e 6f !("../../target/bpfel-unknown-no
3fe0 6e 65 2f 72 65 6c 65 61 73 65 2f 70 61 63 6b 65 74 2d 64 65 74 65 63 74 6f 72 22 29 29 3f 3b 00 ne/release/packet-detector"))?;.