decryption works, but addid doesn't because of unique pointer layers
[wireshark-sm.git] / test / suite_follow.py
blob3916330cdd274c9f984c3f18194af174a41de1f7
2 # Wireshark tests
4 # Copyright (c) 2018 Peter Wu <peter@lekensteyn.nl>
6 # SPDX-License-Identifier: GPL-2.0-or-later
8 '''Follow Stream tests'''
10 import subprocess
11 import pytest
14 class TestFollowTcp:
15 def test_follow_tcp_bad_conditions(self, cmd_tshark, capture_file):
16 '''Checks whether Follow TCP correctly handles lots of edge cases.'''
17 # Edge cases include:
18 # 1. two sequential segments
19 # 2. out-of-order (swapped two sequential segments)
20 # 3. Bad overlap (second overlap with different data should be ignored)
21 # 4. Ignore bad retransmitted data, but extend with remaining data.
22 # 5. Check handling of overlapping data while fragments are incomplete
23 # (out-of-order - cannot add fragments to stream)
24 # 6. lost but acked segments
25 # 7. lost 3/5 fragments, but acked
26 # Not checked: lost and not acked (currently truncated, is that OK?)
27 proc_stdout = subprocess.check_output((cmd_tshark,
28 '-r', capture_file('tcp-badsegments.pcap'),
29 '-qz', 'follow,tcp,hex,0',
30 ), encoding='utf-8')
32 assert """\
33 ===================================================================
34 Follow: tcp,hex
35 Filter: tcp.stream eq 0
36 Node 0: 10.0.0.1:32323
37 Node 1: 10.0.0.2:80
38 00000000 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a GET / HT TP/1.1..
39 00000010 48 6f 73 74 3a 6c 6f 63 61 6c 68 6f 73 74 0d 0a Host:loc alhost..
40 00000020 58 2d 53 77 61 70 70 65 64 3a 20 31 73 74 0d 0a X-Swappe d: 1st..
41 00000030 58 2d 53 77 61 70 70 65 64 3a 20 32 6e 64 0d 0a X-Swappe d: 2nd..
42 00000040 58 2d 4f 76 65 72 6c 61 70 2d 50 61 63 6b 65 74 X-Overla p-Packet
43 00000050 3a 20 65 78 74 72 61 20 64 61 74 61 2d 2d 0d 0a : extra data--..
44 00000060 58 2d 4f 6f 4f 2d 4f 76 65 72 6c 61 70 3a 20 74 X-OoO-Ov erlap: t
45 00000070 68 69 73 20 69 73 20 64 65 6c 61 79 65 64 0d 0a his is d elayed..
46 00000080 58 2d 4f 6f 4f 2d 4f 76 65 72 6c 61 70 32 3a 20 X-OoO-Ov erlap2:
47 00000090 73 65 63 6f 6e 64 20 64 65 6c 61 79 65 64 0d 0a second d elayed..
48 000000A0 58 2d 4f 6f 4f 2d 4f 76 65 72 6c 61 70 33 3a 65 X-OoO-Ov erlap3:e
49 000000B0 78 74 65 6e 64 20 66 72 61 67 6d 65 6e 74 0d 0a xtend fr agment..
50 000000C0 5b 33 32 20 62 79 74 65 73 20 6d 69 73 73 69 6e [32 byte s missin
51 000000D0 67 20 69 6e 20 63 61 70 74 75 72 65 20 66 69 6c g in cap ture fil
52 000000E0 65 5d 00 e].
53 000000E3 58 2d 4d 69 73 73 69 6e 67 2d 42 75 74 2d 41 63 X-Missin g-But-Ac
54 000000F3 6b 65 64 2d 50 72 65 76 69 6f 75 73 3a 31 0d 0a ked-Prev ious:1..
55 00000103 5b 31 36 20 62 79 74 65 73 20 6d 69 73 73 69 6e [16 byte s missin
56 00000113 67 20 69 6e 20 63 61 70 74 75 72 65 20 66 69 6c g in cap ture fil
57 00000123 65 5d 00 e].
58 00000126 3a :
59 00000127 5b 31 33 20 62 79 74 65 73 20 6d 69 73 73 69 6e [13 byte s missin
60 00000137 67 20 69 6e 20 63 61 70 74 75 72 65 20 66 69 6c g in cap ture fil
61 00000147 65 5d 00 e].
62 0000014A 0d .
63 0000014B 5b 31 20 62 79 74 65 73 20 6d 69 73 73 69 6e 67 [1 bytes missing
64 0000015B 20 69 6e 20 63 61 70 74 75 72 65 20 66 69 6c 65 in capt ure file
65 0000016B 5d 00 ].
66 0000016D 58 2d 4d 69 73 73 69 6e 67 2d 33 2d 4f 75 74 2d X-Missin g-3-Out-
67 0000017D 4f 66 2d 35 2d 42 75 74 2d 41 43 4b 3a 59 0d 0a Of-5-But -ACK:Y..
68 0000018D 0d 0a ..
69 ===================================================================
70 """.replace("\r\n", "\n") in proc_stdout
72 def test_follow_websocket(self, cmd_tshark, capture_file):
73 '''Checks whether Follow Websocket correctly handles masked data.'''
74 proc_stdout = subprocess.check_output((cmd_tshark,
75 '-r', capture_file('websocket.pcapng.gz'),
76 '-qz', 'follow,websocket,hex,0',
77 ), encoding='utf-8')
79 assert """\
80 ===================================================================
81 Follow: websocket,hex
82 Filter: tcp.stream eq 0
83 Node 0: 127.0.0.1:44380
84 Node 1: 127.0.0.1:8080
85 00000000 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
86 00000010 22 2c 22 64 61 74 61 22 3a 22 31 32 36 35 33 30 ","data" :"126530
87 00000020 37 34 34 37 34 30 39 34 39 39 30 31 38 22 7d 0a 74474094 99018"}.
88 00000000 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
89 00000010 65 22 2c 22 64 61 74 61 22 3a 22 31 32 36 35 33 e","data ":"12653
90 00000020 30 37 34 34 37 34 30 39 34 39 39 30 31 38 22 7d 07447409 499018"}
91 00000030 0a .
92 00000030 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
93 00000040 22 2c 22 64 61 74 61 22 3a 22 37 38 32 30 36 32 ","data" :"782062
94 00000050 33 35 30 33 34 38 39 32 35 35 35 31 31 22 7d 0a 35034892 55511"}.
95 00000031 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
96 00000041 65 22 2c 22 64 61 74 61 22 3a 22 37 38 32 30 36 e","data ":"78206
97 00000051 32 33 35 30 33 34 38 39 32 35 35 35 31 31 22 7d 23503489 255511"}
98 00000061 0a .
99 00000060 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
100 00000070 22 2c 22 64 61 74 61 22 3a 22 31 34 32 36 39 33 ","data" :"142693
101 00000080 39 37 32 39 33 36 33 37 39 36 30 39 39 22 7d 0a 97293637 96099"}.
102 00000062 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
103 00000072 65 22 2c 22 64 61 74 61 22 3a 22 31 34 32 36 39 e","data ":"14269
104 00000082 33 39 37 32 39 33 36 33 37 39 36 30 39 39 22 7d 39729363 796099"}
105 00000092 0a .
106 00000090 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
107 000000A0 22 2c 22 64 61 74 61 22 3a 22 31 30 33 30 31 37 ","data" :"103017
108 000000B0 37 39 31 35 36 35 32 31 34 34 31 31 36 22 7d 0a 79156521 44116"}.
109 00000093 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
110 000000A3 65 22 2c 22 64 61 74 61 22 3a 22 31 30 33 30 31 e","data ":"10301
111 000000B3 37 37 39 31 35 36 35 32 31 34 34 31 31 36 22 7d 77915652 144116"}
112 000000C3 0a .
113 ===================================================================
114 """.replace("\r\n", "\n") in proc_stdout
116 def test_follow_websocket_fragmented(self, cmd_tshark, capture_file):
117 '''Checks whether Follow Websocket correctly handles fragmented data.'''
118 proc_stdout = subprocess.check_output((cmd_tshark,
119 '-r', capture_file('websocket-fragmented.pcapng.gz'),
120 '-qz', 'follow,websocket,hex,0',
121 ), encoding='utf-8')
123 assert """\
124 ===================================================================
125 Follow: websocket,hex
126 Filter: tcp.stream eq 0
127 Node 0: 127.0.0.1:59700
128 Node 1: 127.0.0.1:8080
129 00000000 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
130 00000010 22 2c 22 64 61 74 61 22 3a 22 37 34 35 33 36 33 ","data" :"745363
131 00000020 31 36 30 32 33 33 38 32 37 33 33 37 32 36 32 32 16023382 73372622
132 00000030 38 33 38 32 34 39 31 36 39 38 32 35 39 39 39 38 83824916 98259998
133 00000040 37 30 30 36 32 36 34 37 36 33 37 35 34 39 30 35 70062647 63754905
134 00000050 31 36 34 32 34 32 32 33 33 37 39 37 30 31 37 38 16424223 37970178
135 00000060 37 32 36 30 38 33 38 32 31 36 35 33 32 37 33 35 72608382 16532735
136 00000070 31 39 32 38 39 33 32 39 31 36 36 33 35 38 37 36 19289329 16635876
137 00000080 36 34 37 35 30 30 31 39 32 36 32 30 33 38 31 37 64750019 26203817
138 00000090 33 30 37 34 31 36 31 32 33 36 36 38 35 38 31 30 30741612 36685810
139 000000A0 33 32 36 34 32 36 35 31 38 37 37 31 34 33 31 38 32642651 87714318
140 000000B0 31 22 7d 0a 1"}.
141 00000000 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
142 00000010 65 22 2c 22 64 61 74 61 22 3a 22 37 34 35 33 36 e","data ":"74536
143 00000020 33 31 36 30 32 33 33 38 32 37 33 33 37 32 36 32 31602338 27337262
144 00000030 32 38 33 38 32 34 39 31 36 39 38 32 35 39 39 39 28382491 69825999
145 00000040 38 37 30 30 36 32 36 34 37 36 33 37 35 34 39 30 87006264 76375490
146 00000050 35 31 36 34 32 34 32 32 33 33 37 39 37 30 31 37 51642422 33797017
147 00000060 38 37 32 36 30 38 33 38 32 31 36 35 33 32 37 33 87260838 21653273
148 00000070 35 31 39 32 38 39 33 32 39 31 36 36 33 35 38 37 51928932 91663587
149 00000080 36 36 34 37 35 30 30 31 39 32 36 32 30 33 38 31 66475001 92620381
150 00000090 37 33 30 37 34 31 36 31 32 33 36 36 38 35 38 31 73074161 23668581
151 000000A0 30 33 32 36 34 32 36 35 31 38 37 37 31 34 33 31 03264265 18771431
152 000000B0 38 31 22 7d 0a 81"}.
153 000000B4 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
154 000000C4 22 2c 22 64 61 74 61 22 3a 22 35 30 30 30 37 39 ","data" :"500079
155 000000D4 37 37 35 32 38 33 33 37 32 35 36 31 33 38 30 30 77528337 25613800
156 000000E4 36 36 30 36 30 39 30 35 37 30 30 37 38 35 35 38 66060905 70078558
157 000000F4 35 30 39 38 31 35 35 33 31 36 36 39 30 34 38 34 50981553 16690484
158 00000104 30 34 39 39 31 36 31 38 34 38 37 37 34 34 39 33 04991618 48774493
159 00000114 32 35 34 34 35 36 38 31 32 35 30 36 37 37 30 39 25445681 25067709
160 00000124 35 38 32 38 35 34 30 36 39 36 36 34 34 36 32 30 58285406 96644620
161 00000134 30 34 38 34 38 34 32 39 35 39 34 34 34 35 34 33 04848429 59444543
162 00000144 31 39 33 39 39 39 32 35 39 32 39 38 37 32 31 38 19399925 92987218
163 00000154 39 34 36 38 31 38 33 33 30 35 33 38 33 38 36 30 94681833 05383860
164 00000164 32 38 22 7d 0a 28"}.
165 000000B5 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
166 000000C5 65 22 2c 22 64 61 74 61 22 3a 22 35 30 30 30 37 e","data ":"50007
167 000000D5 39 37 37 35 32 38 33 33 37 32 35 36 31 33 38 30 97752833 72561380
168 000000E5 30 36 36 30 36 30 39 30 35 37 30 30 37 38 35 35 06606090 57007855
169 000000F5 38 35 30 39 38 31 35 35 33 31 36 36 39 30 34 38 85098155 31669048
170 00000105 34 30 34 39 39 31 36 31 38 34 38 37 37 34 34 39 40499161 84877449
171 00000115 33 32 35 34 34 35 36 38 31 32 35 30 36 37 37 30 32544568 12506770
172 00000125 39 35 38 32 38 35 34 30 36 39 36 36 34 34 36 32 95828540 69664462
173 00000135 30 30 34 38 34 38 34 32 39 35 39 34 34 34 35 34 00484842 95944454
174 00000145 33 31 39 33 39 39 39 32 35 39 32 39 38 37 32 31 31939992 59298721
175 00000155 38 39 34 36 38 31 38 33 33 30 35 33 38 33 38 36 89468183 30538386
176 00000165 30 32 38 22 7d 0a 028"}.
177 ===================================================================
178 """.replace("\r\n", "\n") in proc_stdout
180 def test_follow_websocket_compressed(self, cmd_tshark, capture_file):
181 '''Checks whether Follow Websocket correctly handles compressed data.'''
182 proc_stdout = subprocess.check_output((cmd_tshark,
183 '-r', capture_file('websocket-compressed.pcapng.gz'),
184 '-qz', 'follow,websocket,hex,0',
185 ), encoding='utf-8')
187 assert """\
188 ===================================================================
189 Follow: websocket,hex
190 Filter: tcp.stream eq 0
191 Node 0: 127.0.0.1:55256
192 Node 1: 127.0.0.1:8080
193 00000000 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
194 00000010 22 2c 22 64 61 74 61 22 3a 22 33 38 35 37 34 34 ","data" :"385744
195 00000020 35 34 33 35 38 33 37 32 39 37 33 30 37 33 38 37 54358372 97307387
196 00000030 31 35 33 32 32 35 32 38 37 39 34 30 34 34 32 38 15322528 79404428
197 00000040 36 30 33 38 36 31 34 30 38 33 30 33 36 33 38 36 60386140 83036386
198 00000050 36 34 38 37 30 39 36 33 31 39 36 30 32 36 33 34 64870963 19602634
199 00000060 39 36 38 30 37 36 34 31 33 30 33 35 35 39 30 30 96807641 30355900
200 00000070 37 30 37 36 36 30 33 33 31 35 32 33 34 36 32 33 70766033 15234623
201 00000080 34 30 33 39 35 39 34 37 35 30 36 39 31 35 39 34 40395947 50691594
202 00000090 38 34 34 35 37 36 37 39 38 38 34 30 30 33 34 34 84457679 88400344
203 000000A0 36 39 32 35 38 36 32 36 33 30 39 34 34 32 35 36 69258626 30944256
204 000000B0 32 22 7d 0a 2"}.
205 00000000 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
206 00000010 65 22 2c 22 64 61 74 61 22 3a 22 33 38 35 37 34 e","data ":"38574
207 00000020 34 35 34 33 35 38 33 37 32 39 37 33 30 37 33 38 45435837 29730738
208 00000030 37 31 35 33 32 32 35 32 38 37 39 34 30 34 34 32 71532252 87940442
209 00000040 38 36 30 33 38 36 31 34 30 38 33 30 33 36 33 38 86038614 08303638
210 00000050 36 36 34 38 37 30 39 36 33 31 39 36 30 32 36 33 66487096 31960263
211 00000060 34 39 36 38 30 37 36 34 31 33 30 33 35 35 39 30 49680764 13035590
212 00000070 30 37 30 37 36 36 30 33 33 31 35 32 33 34 36 32 07076603 31523462
213 00000080 33 34 30 33 39 35 39 34 37 35 30 36 39 31 35 39 34039594 75069159
214 00000090 34 38 34 34 35 37 36 37 39 38 38 34 30 30 33 34 48445767 98840034
215 000000A0 34 36 39 32 35 38 36 32 36 33 30 39 34 34 32 35 46925862 63094425
216 000000B0 36 32 22 7d 0a 62"}.
217 000000B4 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
218 000000C4 22 2c 22 64 61 74 61 22 3a 22 36 31 37 30 30 39 ","data" :"617009
219 000000D4 33 36 30 38 33 33 38 33 34 38 39 30 37 31 39 38 36083383 48907198
220 000000E4 34 39 33 35 35 38 38 38 33 31 30 35 30 36 32 31 49355888 31050621
221 000000F4 33 38 31 33 35 39 31 38 30 38 34 37 33 39 36 32 38135918 08473962
222 00000104 35 31 36 37 35 37 33 34 30 31 31 36 36 31 34 37 51675734 01166147
223 00000114 38 34 34 34 33 31 33 30 39 31 35 30 33 33 35 37 84443130 91503357
224 00000124 31 31 36 35 38 37 39 34 32 36 34 32 30 34 36 34 11658794 26420464
225 00000134 37 39 38 39 30 33 39 30 37 31 39 30 34 35 35 39 79890390 71904559
226 00000144 33 31 37 35 37 30 31 34 31 33 33 31 35 33 33 34 31757014 13315334
227 00000154 31 34 30 35 39 32 38 36 34 37 33 30 35 32 31 38 14059286 47305218
228 00000164 39 32 22 7d 0a 92"}.
229 000000B5 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
230 000000C5 65 22 2c 22 64 61 74 61 22 3a 22 36 31 37 30 30 e","data ":"61700
231 000000D5 39 33 36 30 38 33 33 38 33 34 38 39 30 37 31 39 93608338 34890719
232 000000E5 38 34 39 33 35 35 38 38 38 33 31 30 35 30 36 32 84935588 83105062
233 000000F5 31 33 38 31 33 35 39 31 38 30 38 34 37 33 39 36 13813591 80847396
234 00000105 32 35 31 36 37 35 37 33 34 30 31 31 36 36 31 34 25167573 40116614
235 00000115 37 38 34 34 34 33 31 33 30 39 31 35 30 33 33 35 78444313 09150335
236 00000125 37 31 31 36 35 38 37 39 34 32 36 34 32 30 34 36 71165879 42642046
237 00000135 34 37 39 38 39 30 33 39 30 37 31 39 30 34 35 35 47989039 07190455
238 00000145 39 33 31 37 35 37 30 31 34 31 33 33 31 35 33 33 93175701 41331533
239 00000155 34 31 34 30 35 39 32 38 36 34 37 33 30 35 32 31 41405928 64730521
240 00000165 38 39 32 22 7d 0a 892"}.
241 ===================================================================
242 """.replace("\r\n", "\n") in proc_stdout
244 def test_follow_websocket_compressed_fragmented(self, cmd_tshark, capture_file):
245 '''Checks whether Follow Websocket correctly handles compressed and fragmented data.'''
246 proc_stdout = subprocess.check_output((cmd_tshark,
247 '-r', capture_file('websocket-compressed-fragmented.pcapng.gz'),
248 '-qz', 'follow,websocket,hex,0',
249 ), encoding='utf-8')
251 assert """\
252 ===================================================================
253 Follow: websocket,hex
254 Filter: tcp.stream eq 0
255 Node 0: 127.0.0.1:39964
256 Node 1: 127.0.0.1:8080
257 00000000 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
258 00000010 22 2c 22 64 61 74 61 22 3a 22 36 30 36 32 39 36 ","data" :"606296
259 00000020 32 34 35 35 32 37 33 39 33 32 32 35 33 36 35 33 24552739 32253653
260 00000030 38 37 33 33 35 37 37 37 30 39 37 32 36 31 38 36 87335777 09726186
261 00000040 36 34 38 38 36 32 39 32 30 34 31 32 30 38 36 37 64886292 04120867
262 00000050 34 32 30 33 38 33 39 38 33 33 35 32 34 35 31 35 42038398 33524515
263 00000060 35 32 38 34 33 39 36 36 35 31 36 36 39 35 31 37 52843966 51669517
264 00000070 36 34 37 35 35 30 35 39 39 37 36 34 30 32 38 33 64755059 97640283
265 00000080 35 31 39 34 33 35 35 34 39 34 30 38 36 33 38 37 51943554 94086387
266 00000090 34 34 37 31 35 33 35 33 31 37 33 34 33 33 38 34 44715353 17343384
267 000000A0 31 35 31 30 37 35 37 30 35 39 37 33 37 37 30 39 15107570 59737709
268 000000B0 39 39 30 30 34 31 36 38 38 38 38 38 35 32 38 30 99004168 88885280
269 000000C0 32 36 34 35 38 32 36 35 35 32 39 36 38 33 35 38 26458265 52968358
270 000000D0 38 39 30 37 33 35 31 31 37 36 36 31 36 33 31 38 89073511 76616318
271 000000E0 39 33 31 31 33 33 39 38 33 39 34 30 30 37 39 36 93113398 39400796
272 000000F0 32 33 38 38 38 39 33 34 31 37 35 35 36 34 36 35 23888934 17556465
273 00000100 37 35 30 38 33 37 39 32 36 39 35 31 36 31 33 37 75083792 69516137
274 00000110 32 34 38 38 38 30 33 33 39 33 32 31 35 37 32 34 24888033 93215724
275 00000120 38 34 38 36 31 36 39 39 30 30 33 38 31 36 31 35 84861699 00381615
276 00000130 34 38 35 34 34 38 33 39 34 30 34 37 37 35 34 35 48544839 40477545
277 00000140 33 32 36 33 36 35 39 33 22 7d 0a 32636593 "}.
278 00000000 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
279 00000010 65 22 2c 22 64 61 74 61 22 3a 22 36 30 36 32 39 e","data ":"60629
280 00000020 36 32 34 35 35 32 37 33 39 33 32 32 35 33 36 35 62455273 93225365
281 00000030 33 38 37 33 33 35 37 37 37 30 39 37 32 36 31 38 38733577 70972618
282 00000040 36 36 34 38 38 36 32 39 32 30 34 31 32 30 38 36 66488629 20412086
283 00000050 37 34 32 30 33 38 33 39 38 33 33 35 32 34 35 31 74203839 83352451
284 00000060 35 35 32 38 34 33 39 36 36 35 31 36 36 39 35 31 55284396 65166951
285 00000070 37 36 34 37 35 35 30 35 39 39 37 36 34 30 32 38 76475505 99764028
286 00000080 33 35 31 39 34 33 35 35 34 39 34 30 38 36 33 38 35194355 49408638
287 00000090 37 34 34 37 31 35 33 35 33 31 37 33 34 33 33 38 74471535 31734338
288 000000A0 34 31 35 31 30 37 35 37 30 35 39 37 33 37 37 30 41510757 05973770
289 000000B0 39 39 39 30 30 34 31 36 38 38 38 38 38 35 32 38 99900416 88888528
290 000000C0 30 32 36 34 35 38 32 36 35 35 32 39 36 38 33 35 02645826 55296835
291 000000D0 38 38 39 30 37 33 35 31 31 37 36 36 31 36 33 31 88907351 17661631
292 000000E0 38 39 33 31 31 33 33 39 38 33 39 34 30 30 37 39 89311339 83940079
293 000000F0 36 32 33 38 38 38 39 33 34 31 37 35 35 36 34 36 62388893 41755646
294 00000100 35 37 35 30 38 33 37 39 32 36 39 35 31 36 31 33 57508379 26951613
295 00000110 37 32 34 38 38 38 30 33 33 39 33 32 31 35 37 32 72488803 39321572
296 00000120 34 38 34 38 36 31 36 39 39 30 30 33 38 31 36 31 48486169 90038161
297 00000130 35 34 38 35 34 34 38 33 39 34 30 34 37 37 35 34 54854483 94047754
298 00000140 35 33 32 36 33 36 35 39 33 22 7d 0a 53263659 3"}.
299 0000014B 7b 22 74 79 70 65 22 3a 22 72 65 71 75 65 73 74 {"type": "request
300 0000015B 22 2c 22 64 61 74 61 22 3a 22 34 31 30 35 32 30 ","data" :"410520
301 0000016B 34 31 33 30 36 36 36 36 32 32 30 38 32 35 33 31 41306666 22082531
302 0000017B 36 36 33 34 37 39 32 39 32 31 31 39 39 37 32 35 66347929 21199725
303 0000018B 35 38 35 38 37 39 32 32 30 39 31 36 31 38 37 39 58587922 09161879
304 0000019B 36 38 36 37 32 36 33 32 34 35 39 35 34 35 39 35 68672632 45954595
305 000001AB 34 31 31 32 38 31 36 32 39 38 37 33 31 31 32 32 41128162 98731122
306 000001BB 31 36 39 38 31 38 35 37 32 33 38 34 36 37 39 34 16981857 23846794
307 000001CB 37 36 36 33 30 38 38 36 34 39 33 36 36 37 34 35 76630886 49366745
308 000001DB 32 37 37 39 39 33 31 37 34 37 32 33 39 37 37 39 27799317 47239779
309 000001EB 38 38 39 30 31 32 33 39 33 33 37 37 35 30 35 36 88901239 33775056
310 000001FB 31 34 30 34 37 38 31 32 39 32 30 36 31 30 34 32 14047812 92061042
311 0000020B 35 30 34 38 35 39 34 35 34 37 35 33 30 39 34 35 50485945 47530945
312 0000021B 37 32 35 30 35 33 34 33 39 32 31 36 34 35 37 35 72505343 92164575
313 0000022B 37 34 39 30 34 33 30 36 35 38 32 31 39 36 39 35 74904306 58219695
314 0000023B 37 37 37 34 32 39 35 39 39 32 34 32 37 38 32 32 77742959 92427822
315 0000024B 37 38 38 31 37 33 36 38 38 38 39 31 37 37 32 31 78817368 88917721
316 0000025B 36 39 38 30 35 31 38 38 35 39 32 32 32 32 34 37 69805188 59222247
317 0000026B 32 36 31 37 39 38 35 36 32 31 34 33 30 38 33 35 26179856 21430835
318 0000027B 38 38 38 38 39 36 38 33 39 38 33 38 33 34 31 33 88889683 98383413
319 0000028B 31 35 34 35 35 33 22 7d 0a 154553"} .
320 0000014C 7b 22 74 79 70 65 22 3a 22 72 65 73 70 6f 6e 73 {"type": "respons
321 0000015C 65 22 2c 22 64 61 74 61 22 3a 22 34 31 30 35 32 e","data ":"41052
322 0000016C 30 34 31 33 30 36 36 36 36 32 32 30 38 32 35 33 04130666 62208253
323 0000017C 31 36 36 33 34 37 39 32 39 32 31 31 39 39 37 32 16634792 92119972
324 0000018C 35 35 38 35 38 37 39 32 32 30 39 31 36 31 38 37 55858792 20916187
325 0000019C 39 36 38 36 37 32 36 33 32 34 35 39 35 34 35 39 96867263 24595459
326 000001AC 35 34 31 31 32 38 31 36 32 39 38 37 33 31 31 32 54112816 29873112
327 000001BC 32 31 36 39 38 31 38 35 37 32 33 38 34 36 37 39 21698185 72384679
328 000001CC 34 37 36 36 33 30 38 38 36 34 39 33 36 36 37 34 47663088 64936674
329 000001DC 35 32 37 37 39 39 33 31 37 34 37 32 33 39 37 37 52779931 74723977
330 000001EC 39 38 38 39 30 31 32 33 39 33 33 37 37 35 30 35 98890123 93377505
331 000001FC 36 31 34 30 34 37 38 31 32 39 32 30 36 31 30 34 61404781 29206104
332 0000020C 32 35 30 34 38 35 39 34 35 34 37 35 33 30 39 34 25048594 54753094
333 0000021C 35 37 32 35 30 35 33 34 33 39 32 31 36 34 35 37 57250534 39216457
334 0000022C 35 37 34 39 30 34 33 30 36 35 38 32 31 39 36 39 57490430 65821969
335 0000023C 35 37 37 37 34 32 39 35 39 39 32 34 32 37 38 32 57774295 99242782
336 0000024C 32 37 38 38 31 37 33 36 38 38 38 39 31 37 37 32 27881736 88891772
337 0000025C 31 36 39 38 30 35 31 38 38 35 39 32 32 32 32 34 16980518 85922224
338 0000026C 37 32 36 31 37 39 38 35 36 32 31 34 33 30 38 33 72617985 62143083
339 0000027C 35 38 38 38 38 39 36 38 33 39 38 33 38 33 34 31 58888968 39838341
340 0000028C 33 31 35 34 35 35 33 22 7d 0a 3154553" }.
341 ===================================================================
342 """.replace("\r\n", "\n") in proc_stdout